0

这涉及具有非常通用数据库的企业应用程序(所有对象都使用数据库中的数据和国际化/全球化/本地化来识别)。

  • 为存储库模式制作一个模型,然后制作(生成 1:1)另一个数据库访问模型(LINQ2SQL 或 EF)并将后者用作存储库模型数据访问层?
  • 直接使用 L2S/EF/NHibernate 模型,将模型映射到 DB 并打开持久层?

当直接在双模型环境中使用 L2S/EF 模型时,这种双模型想法(存储库模式)是否会弹出问题,使动态可堆叠 LINQ 搜索查询成为可能?

请指教。

4

2 回答 2

0

只要您在存储库中公开 IQueryable 对象,按照您建议的方式堆叠查询应该没有问题。

我会谨慎使用实体框架,因为你可能期望的方式不支持延迟加载。Linq to SQL 将毫无问题地处理延迟加载。

有关实体框架中延迟加载的更多信息,请参阅:
http ://www.singingeels.com/Articles/Entity_Framework_and_Lazy_Loading.aspx

于 2009-08-01T03:48:01.500 回答
0

看看锐利的建筑

关于从存储库对象返回 IQueryable,我认为这样做会模糊应用程序中关注点的适当分离。我完全赞成在您的数据访问层中使用 IQueryable,但是一旦您开始将对象作为 IQueryable 返回,您就可以为您的控制器和/或视图提供开始干预数据访问的机会。这甚至可能对您的应用程序的可测试性产生负面影响。

于 2009-08-01T03:58:09.233 回答