我正在针对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();
}
谢谢!
答案 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操作。谢谢!