设置LazyLoadingEnabled EF 4.X POCO Entity Generator for C#

「已注销」 2012-04-18 01:44:56
小弟用EF 4.x POCO Entity Generator for C# 生成entity class(一个数据的表对应一个class)

LazyLoadingEnabled默认是true,我看到他人的code是设置成false.

using (wimEntities context = new wimEntities(m_connectionString))
{
// You can disable the proxy creation
// by setting context.ContextOptions.ProxyCreationEnabled to false
context.ContextOptions.LazyLoadingEnabled = false;
// The order was created as a POCO proxy object.
// But it will be recieved on the client as a pure POCO.
WimDataEntity.user oUser = context.users.SingleOrDefault(u => u.userid == userId && u.deleted == false);
return oUser;
}

我想知道这里设置成false有必要吗? 或者上面这个例子设置成false有必要吗?

像下面这个例子 设置成false还是true好能?

using (wimEntities context = new wimEntities(m_connectionString))
{
var result = from uw in context.userworkflows
join wf in context.workflows on uw.wfid equals wf.workflowid
join wq in context.workflowquestions on wf.workflowid equals wq.workflowid
where uw.userworkflowid == userWorkflowId && wq.questionname == queestionName
orderby wq.questionorder
select wq;
WimDataEntity.workflowquestion oWQ = null;
foreach (WimDataEntity.workflowquestion oworkflowQusetion in result)
{
oWQ = oworkflowQusetion;
break;
}
return oWQ;
}

还需要设置context.ContextOptions.ProxyCreationEnabled吗?

认真回答 可以另开帖送分 分不是问题
...全文
427 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
另外还有一点,如果你用的是 ASP.NET……
[/Quote]

我用得不是 ASP.NET MVC 而是 StringWriter 和 JsonWriter序列化

BTW, 你可以去第二贴拿分
机器人 2012-04-18
  • 打赏
  • 举报
回复
Navigation Property 是指表的外键关联的属性。如果LazyLoading的话,那么EF第一次查询不会检索这些值。只有用到时再加载。默认EF在WCF做序列化时,Navigation Property会失败。

ProxyCreation 没仔细研究过,印象中在使用WCF时,会干和LazyLoading类似的事情。所以也要关闭。

另外还有一点,如果你用的是 ASP.NET MVC 的 JsonResult 进行序列化则不用关闭这两个属性,内部有处理。
「已注销」 2012-04-18
  • 打赏
  • 举报
回复
那么这个跟一次查询一个表 还是 一次查询两个表 有什么关系吗? 因为名字是带load


还需要设置context.ContextOptions.ProxyCreationEnabled吗?


第二贴 地址

http://topic.csdn.net/u/20120418/02/8c6f314d-5f22-4943-bd80-ca78e9ae0e9c.html
「已注销」 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

生成json数据,那就是序列化了。如果有Navigate Property那么应该关闭。
[/Quote]


说到点子上了

Navigate Property这是什么?


机器人 2012-04-18
  • 打赏
  • 举报
回复
生成json数据,那就是序列化了。如果有Navigate Property那么应该关闭。
「已注销」 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

如果用做 WCF 或者需要序列化的地方,应该关闭LazyLoading,因为会导致数据序列化不完整而失败。
[/Quote]

这个是一个asp net 管理系统 算不算WCF呢?

页面用jQuery显示数据,有一层是将从数据库读出来的数据(c# class or list)生成json格式数据

所以应该关闭吗?
机器人 2012-04-18
  • 打赏
  • 举报
回复
如果用做 WCF 或者需要序列化的地方,应该关闭LazyLoading,因为会导致数据序列化不完整而失败。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧