Какой Oracle эквивалент System.Data.Linq.DataContext? - PullRequest
0 голосов
/ 27 сентября 2010

Я реализую интерфейс IRepository для базы данных Oracle.

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 голосов
/ 09 октября 2010

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

0 голосов
/ 27 сентября 2010

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

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

...