Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 4 为什么在我设置属性时实体框架从数据库加载数据?_Entity Framework 4_Poco - Fatal编程技术网

Entity framework 4 为什么在我设置属性时实体框架从数据库加载数据?

Entity framework 4 为什么在我设置属性时实体框架从数据库加载数据?,entity-framework-4,poco,Entity Framework 4,Poco,我有两个表(数据库中还有更多表,但这里只涉及两个表)。 Account和AccountStatus,帐户可以具有AccountStatus(活动、非活动等) 我创建了一个新帐户并设置了几个属性,但当我达到以下代码时: 1.var status=db.AccountStatuses.SingleOrDefault(s=>s.ID==(long)AccountStatusEnum.Active) 2.account.AccountStatus=状态 3.db.Accounts.AddObject(a

我有两个表(数据库中还有更多表,但这里只涉及两个表)。
Account和AccountStatus,帐户可以具有AccountStatus(活动、非活动等)

我创建了一个新帐户并设置了几个属性,但当我达到以下代码时:
1.var status=db.AccountStatuses.SingleOrDefault(s=>s.ID==(long)AccountStatusEnum.Active)
2.account.AccountStatus=状态
3.db.Accounts.AddObject(account)
第一行执行得很好,但是当我到达第二行时,它需要很长时间,当我进入代码时,似乎每个帐户都是从数据库加载的

我不明白它为什么要加载所有帐户?
我们使用实体框架4和Poco,并且启用了延迟加载

有什么建议吗?
干杯

/Jimmy

您必须小心使用哪些结构来获取数据,因为有些结构会将整个集合拉入并过滤后记。(旁白:长时间的延迟可能是正在创建和播种数据库,如果还没有,它将在您第一次触摸它时发生,可能是通过某种查询。还要记住,当您检索整个数据集时,您实际上可能只有一个编译的查询,在与它交互之前不会进行计算)

请尝试此表单,查看是否存在相同问题:

var status = db.AccountStatuses.Where(s => s.ID == (long)AccountStatusEnum.Active);

你能展示账户创建的全部代码吗?账户创建没有那么壮观;)这些是上面发布的代码前面的几行。var账户=新账户();account.SourceSystemClientID=“”;account.AccountNumber=“…”;account.ModificationDate=DateTime.Now;account.LastModifiedBy=“客户”;account.CreationDate=DateTime.Now;防止对这些类型的问题(加载的数据比您预期的要多)感到惊讶的一个好方法是禁用延迟加载-然后只有您显式加载的内容才会被加载。但是它加载(我认为是所有帐户,实际上我还没有验证是所有帐户)不是很奇怪仅仅因为我设置了AccountStatus属性?我通过指定db.ContextOptions.LazyLoadingEnabled=false,在我进行更新的上下文中取消了Lazyloading的标记;