ADO.NET EF为DAL

时间:2010-08-22 17:16:11

标签: entity-framework ado.net data-access-layer

我正在使用分层架构开发项目。我有一个DAL,其中我正在使用Entity Framework,这是一个业务逻辑层,它使用DAL和应用层返回的对象。

我不完全确定我在考虑这个问题,所以我只会问你的想法。

我的DAL基于地图制作者。我有类型 - 映射器 - BLL用来操作我的数据。这些映射器返回DTO,因为我不想向我的BLL公开任何EF对象,因此它们的实现不依赖于EF来工作。

所有这些映射器都在单个“表”上执行CRUD操作,如:

using (var contex = new EFEntities()){
  var obj = (from x in context.Table where x.ID == param select x).SingleOrDefault;
  return Map(x.ToList());
}

Map 方法将EF对象映射到DTO,DTO只有一些属性可以映射我想要公开的值。

有更优雅的方法吗?我只是使用EF来方便访问我的数据库 - 我不必编写任何ADO.NET代码。

欢迎提出任何意见。

感谢。

1 个答案:

答案 0 :(得分:0)

  

我有一个我正在使用的DAL   实体框架,一种业务逻辑   消耗对象的图层   由DAL和应用层返回。

这是一种变态,因为你将一个完整的对象层放入你的DAL中。 EF不仅仅是DAL。

  

消耗的业务逻辑层   DAL返回的对象和   应用层。

你可能想要查找的术语是“贫血对象模型”,这不是一个好词。

  

是否有更优雅的方法   此?

不要打EF。如果你不喜欢它,不要使用它 - 周围有很多更好的框架。