2010-09-27 9 views
0

J'implémente l'interface IRepository par rapport à une base de données Oracle.Quel est l'équivalent Oracle de System.Data.Linq.DataContext?

public interface IDinnerRepository { 

    IQueryable<Dinner> FindAllDinners(); 
    IQueryable<Dinner> FindByLocation(float latitude, float longitude); 
    IQueryable<Dinner> FindUpcomingDinners(); 
    Dinner    GetDinner(int id); 

    void Add(Dinner dinner); 
    void Delete(Dinner dinner); 

    void Save(); 
} 

Comment implémenter la méthode Save? Si je travaillais avec Linq2Sql, je créerais un contexte de base de données, puis j'appellerais SubmitChanges sur le contexte de la base de données. Comment puis-je implémenter la même fonctionnalité avec un backend Oracle?

/// <summary> 
    /// Database context 
    /// </summary> 
    private DBDataContext db = new DBDataContext(); 

    public void Save() 
    { 
     this.db.SubmitChanges(); 
    } 

Merci!

+0

Pour votre information, j'utilise Oracle Data Provider pour .NET (ODP.net). http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html – Tarzan

Répondre

0

J'ai trouvé une bonne solution qui ne nécessite pas de dépenser de l'argent sur un outil tiers. J'utilise NHibernate pour mon accès aux données. L'équivalent de l'objet LinqToSql DataContext est l'objet Session NHibernate. Cela me permet d'effectuer des opérations CRUD de manière transactionnelle avec Oracle. Merci!

0

Si vous souhaitez utiliser l'équivalent LinqToSql pour Oracle, il existe un LinqToOracle project sur CodePlex. Il fournit un OracleDataContext et tout ce dont vous avez besoin. Cependant, l'enregistrement le plus récent est à partir du 20 juillet 2010, donc il n'y a pas beaucoup de choses là-bas.

Vous pouvez également commencer à utiliser LinqToEntities, conçu pour être indépendant de la plate-forme. Cependant, je ne peux trouver qu'un commercialprovider. Voici another SO question sur l'utilisation d'Oracle avec ADO.NET Entity Framework.

+0

Merci pour les idées. Le projet LinqToOracle est obsolète. La dernière mise à jour a été faite en 2008. Je ne veux pas acheter un fournisseur commercial. – Tarzan