Joh*_*han 5 c# asp.net entity-framework lazy-loading
在将EF实体转换为json对象时,我一直遇到一些关于循环引用的问题.我找到了一个适合我的解决方案,但我想知道添加时实际发生了什么
context.ContextOptions.ProxyCreationEnabled = false;
Run Code Online (Sandbox Code Playgroud)
和/或
context.ContextOptions.LazyLoadingEnabled = false;
Run Code Online (Sandbox Code Playgroud)
第一个似乎足以获得一维的json对象.我应该同时使用吗?他们实际上做了什么?这有更聪明的方法吗?谢谢
第一行关闭从您的实体类继承的类的运行时生成.这个类在运行时真的使用过.不是你的班级.这个运行时生成的类可能不是Serializable,这就是为什么这一行(关闭代理生成)使序列化工作.
第二行关闭延迟加载.所以假设你有父实体和子实体.当您要求父项时,如果启用了延迟加载,则不会加载子项.当你加载Parent时它关闭,你加载它的所有孩子.如果您使用EF,我认为这是您应该熟悉的.
编辑:如果循环引用有问题,那么你应该关闭延迟加载.然后,当您序列化Parent时,您将不会尝试序列化引用Parent的子项(创建循环引用)
| 归档时间: |
|
| 查看次数: |
3681 次 |
| 最近记录: |