【问题标题】:What's the Oracle equivalent of System.Data.Linq.DataContext?System.Data.Linq.DataContext 的 Oracle 等价物是什么?
【发布时间】:2010-09-27 18:23:28
【问题描述】:

我正在针对 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();
    }

谢谢!

【问题讨论】:

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


【解决方案1】:

如果您想为 Oracle 使用 LinqToSql 等效项,CodePlex 上有一个LinqToOracle project。它提供了OracleDataContext 以及您需要的一切。但是,最近一次签到是从 2010 年 7 月 20 日开始的,所以那里没有太多事情发生。

您也可以开始使用设计为独立于平台的 LinqToEntities。但是,我只能找到commercialprovider。这是another SO question 使用 ADO.NET 实体框架的 Oracle。

【讨论】:

  • 感谢您的想法。 LinqToOracle 项目已过时。上次更新是在 2008 年。我不想购买商业提供商。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 2010-09-29
    • 2016-06-05
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2012-10-03
    相关资源
    最近更新 更多