Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Entity framework 使用Breeze在AfterSaveEntities上启用延迟加载_Entity Framework_Breeze - Fatal编程技术网

Entity framework 使用Breeze在AfterSaveEntities上启用延迟加载

Entity framework 使用Breeze在AfterSaveEntities上启用延迟加载,entity-framework,breeze,Entity Framework,Breeze,我正在将breeze与EF6和EFContextProvider一起使用 保存更改时,我正在使用: { TransactionType = TransactionType.TransactionScope }; 我想在AfterSaveEntities委托期间使用延迟加载来更轻松地验证我的实体,但我不能这样做。在事务期间尝试设置LazyLoadingEnabled=false不起作用。实体在需要时仍然不加载关系 有办法吗?没有,您需要手动加载实体。事实上,如中所述,您应该创建一个单独的EF上下

我正在将breeze与EF6和EFContextProvider一起使用

保存更改时,我正在使用

{ TransactionType = TransactionType.TransactionScope };
我想在AfterSaveEntities委托期间使用延迟加载来更轻松地验证我的实体,但我不能这样做。
在事务期间尝试设置
LazyLoadingEnabled=false
不起作用。
实体在需要时仍然不加载关系


有办法吗?

没有,您需要手动加载实体。事实上,如中所述,您应该创建一个单独的EF上下文来加载任何其他实体


将SaveResult发送回客户端时,通过导航属性附加的任何其他实体将与原始实体一起序列化。因此,除非这是您的意图,否则您应该保持原始上下文的干净。

这很有效。但我认为它在同一事务中使用了另一个到数据库的连接,因为我在SaveChanges设置上使用了TransactionScope。这是否意味着我的项目现在使用DTC而不是轻量级事务?有没有办法使新的DBcontext登记到当前事务中?什么是“在保存期间验证”?为什么要在保存后进行验证?为什么要在事务中登记验证?最后,为什么要更改默认事务设置。。。哪一项仅在实际保存时起作用,而不是在活动前后?您希望事务的边界尽可能小和简短,以便最小化数据库压力并最大限度地提高性能。您可以使用相同的连接创建第二个上下文,如文档部分所述。提供更多指导。谢谢。也许可以将这两个答案添加到Breeze教程中?