2010-09-10 40 views
1

数据访问类库所以我有什么从我的LINQ返回查询实体

我做一个LINQ到实体调用

我结束了一个单行有我的资料表对象。

我应该从我的类库方法返回什么?

我认为这将是很酷的返回TableData对象,但我看到,如果您对其进行更改并调用一个保存,它实际上更新数据库,我不想在我的类库之外。

人们通常返回什么作为他们的结果对象?

回答

1

如果将EF跟踪对象的状态设置为Detached,则更改将不会传播到数据库。

2

如果您试图遵循n层架构,我的建议是使用自我追踪实体T4模板。

  1. 打开您的.edmx
  2. 右键点击你的模型的可视化视图的enpty空间的地方,并选择“添加代码生成项目”
  3. 选择自追踪模板

然后,您的模型将成为您想从存储库返回的内容,并且在您要将它们留存至数据库时,会跟踪您对实体所做的更改。

0

这是一个伟大的问题,因为我真的指出了担忧的分离。一方面,您希望将“原生”数据返回考试或其他任何方面。但另一方面,你可能不需要所有的'实时数据包袱'。

我认为这是数据传输对象可以发挥作用的地方。我甚至已经为定义具有只读属性的DTO的接口。 '我回来'是由我所要求的--IDTO,DTO或逻辑实体定义的,因为某些业务层对象可以使用DTO。

我不使用EF,而是在我们自己的ORM-ish DAL中,这正是它的工作原理 - 工厂和服务是通用的,并返回所要求的内容。不想担心编辑?询问没有任何可写属性的接口。

相关问题