У меня есть конкретный сценарий, который меня интересует, может ли (и каким образом) решить Entity Framework.
Я разрабатываю структуру для нового решения, которое будет передано многим разработчикам для расширения.и улучшать со временем.Я хотел бы предоставить простой уровень доступа к данным, который они могут использовать на уровне домена, который они реализуют, не требуя от них внесения изменений в код доступа к данным.Я исследую различные инструменты, такие как NHibernate, LINQ-to-SQL, EF, а также старый добрый ADO.NET.
В качестве примера того, что мне нужно, используя LINQ-to-SQL,код на уровне домена вызовет метод GetTable для L2S DataContext, который возвращает IQueryable .Теоретически это означает, что DataContext может разрешить запрос для любого T. Конечно, в действительности DataContext должен знать, как обрабатывать T.
Глядя на то, как работает EF, я вижу некоторые параллели с другими инструментамино не могу найти, как мне достичь своих целей.Вот что я хотел бы, чтобы произошло:
Я предоставляю «контекст» по умолчанию, который предоставляет метод, подобный GetTable (например, Query ), который возвращает IQueryable .Это учитывает будущие улучшения, где T представляет EntityTypes, которые еще не были реализованы, и позволяет разработчикам легко сосредоточиться на уровне домена, потому что все, что им когда-либо нужно, это вызывать GetTable (или аналогичный).
Единственное другое требование к разработчику домена - предоставить уровень отображения, где концептуальный уровень (T) отображается на уровень хранения (физическая схема базы данных).
FWIW, я полагаю, это легко выполнитьс NHibernate через сопоставление файлов XML.Есть ли способ заставить это работать с EF?