Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从我的linq到实体查询返回什么_.net_Linq_Linq To Entities - Fatal编程技术网

.net 从我的linq到实体查询返回什么

.net 从我的linq到实体查询返回什么,.net,linq,linq-to-entities,.net,Linq,Linq To Entities,所以我有一个数据访问类库 我打电话给你 最后,我得到了一个包含TableData对象的单行 我应该从类库方法返回什么 我认为返回TableData对象会很酷,但我发现,如果您对其进行更改并调用save,它实际上会更新数据库,而我不希望数据库超出我的类库 人们通常返回什么作为他们的结果对象?如果您将EF跟踪对象的状态设置为“分离”,更改将不会传播到数据库 如果您试图遵循n层体系结构,我的建议是使用自跟踪实体T4模板 打开你的.EDMX 右键单击模型可视视图的enpty空间中的某个位置,然后选择“添

所以我有一个数据访问类库

我打电话给你

最后,我得到了一个包含TableData对象的单行

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

我认为返回TableData对象会很酷,但我发现,如果您对其进行更改并调用save,它实际上会更新数据库,而我不希望数据库超出我的类库


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

如果您将EF跟踪对象的状态设置为“分离”,更改将不会传播到数据库

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

  • 打开你的.EDMX
  • 右键单击模型可视视图的enpty空间中的某个位置,然后选择“添加代码生成项”
  • 选择自跟踪模板

  • 然后,您的模型将是您希望从存储库返回的模型,并且当您希望将实体更改保留回数据库时,您对实体所做的更改将被跟踪。

    这是一个很好的问题,因为对我来说,它确实指向关注点的分离。一方面,您希望“本地”数据返回以供检查或其他用途。但另一方面,你可能不想要所有的“实时数据包袱”

    我认为这就是数据传输对象可以发挥作用的地方。我甚至还为具有只读属性的DTO定义了接口“我得到的”由我要求的定义-IDTO、DTO或具有逻辑的实体,因为某些业务层对象可以使用DTO

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