什么是Oracle等效的System.Data.Linq.DataContext?

时间:2010-09-27 18:23:28

标签: .net oracle linq-to-sql datacontext irepository

我正在针对Oracle数据库实现IRepository接口。

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();
}

我应该如何实现Save方法?如果我正在使用Linq2Sql,我将创建一个数据库上下文,然后在数据库上下文中调用SubmitChanges。如何在Oracle后端实现相同的功能?

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

如果要使用LinqToSql等效的Oracle,CodePlex上有LinqToOracle project。它提供了OracleDataContext以及您需要的一切。但是,最近的签到时间是从2010年7月20日开始的,所以那里没有很多。

您也可以开始使用专为平台无关的LinqToEntities。但是,我只能找到commercial provider。以下是使用Oracle和ADO.NET实体框架的another SO question

答案 1 :(得分:0)

我找到了一个很好的解决方案,不需要我在第三方工具上花钱。我正在使用NHibernate进行数据访问。 LinqToSql DataContext对象的等价物是NHibernate Session对象。这允许我以事务方式与Oracle执行CRUD操作。谢谢!