2010-09-27 4 views
0

Я реализую интерфейс IRepository для базы данных Oracle.Что такое эквивалент Oracle 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(); 
} 

Как следует реализовать метод сохранения? Если бы я работал с Linq2Sql, я бы создал контекст базы данных, а затем вызывал SubmitChanges в контексте базы данных. Как я могу реализовать ту же функциональность с Oracle back end?

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

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

Спасибо!

+0

FYI, я использую поставщик данных Oracle для .NET (ODP.net). http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html – Tarzan

ответ

0

Я нашел хорошее решение, которое не требует, чтобы я тратил деньги на сторонний инструмент. Я использую NHibernate для доступа к данным. Эквивалентом для объекта LinqToSql DataContext является объект Session NHibernate. Это позволяет выполнять транзакции CRUD транзакционно с Oracle. Благодаря!

0

Если вы хотите использовать эквивалент LinqToSql для Oracle, на CodePlex есть LinqToOracle project. Он предоставляет OracleDataContext и все остальное, что вам нужно. Тем не менее, самая последняя регистрация - с 20 июля 2010 года, так что там не так много.

Вы также можете начать использовать LinqToEntities, который был разработан независимо от платформы. Тем не менее, я могу найти только commercialprovider. Вот another SO question об использовании Oracle с ADO.NET Entity Framework.

+0

Благодарим вас за идеи. Проект LinqToOracle устарел. Последнее обновление было сделано в 2008 году. Я не хочу покупать коммерческого провайдера. – Tarzan

Смежные вопросы