当json系列化一个结果的时候,比如
persondao dao = new persondao(); person p = dao.get("张三");
dao.dispose(); json.Serialization(p);
序列化的时候会提示上下文已经关闭,不能再用。
我想是因为序列化的时候,访问了person的导航属性,处罚ef的懒加载机制,而此时上下文已经关闭,所以导致此问题。
1.有没有解决此问题好的方式?
2.ef中能否禁止查询导航属性?如何实现?
dao.dispose(); json.Serialization(p); 颠倒一下顺序就可以了
这样是否会导致导航属性和导航属性的导航属性都被序列化出来,浪费资源
@yanwushu: dao.dispose()放在前面,变成对释放的对象操作肯定不对,我记得EF可以不让加载关联对象,enable的属性吧好像
http://www.codeproject.com/Articles/788559/Loading-Related-Entities-with-Entity-Framework-A-B LazyLoad不用的对象自然不会加载