【发布时间】:2019-03-06 17:22:35
【问题描述】:
这真的是预期的行为吗?我正在使用标准的 T4 POCO 模板(但通过 http://geekswithblogs.net/danemorgridge/archive/2010/06/28/entity-framework-repository-amp-unit-of-work-t4-template-on.aspx 生成的 Repository 和 UnitOfWork 虽然问题似乎与 POCO 修复有关)
如果我执行以下操作
var UOW = new EFUnitOfWork();
UOW.LazyLoadingEnabled = true;
UOW.ProxyCreationEnabled = true;
var horderRepo = RepositoryHelper.GetHORDERRepository(UOW);
var subrelmRepository = RepositoryHelper.GetSUBRELMRepository(UOW);
var ho = horderRepo.Where(h=>h.RECORD_NUMBER==1).FirstOrDefault();
var somerelm = subrelmRepository.Where(r=>r.RECORD_NUMBER==ho.REALM_KEY+1).FirstOrDefault();
ho.SUBRELM=somerelm;
UOW.Commit();
return View(ho);
每次我将 ho.SUBRELM 更改为新的 RELM 时,都会调用预期的 POCO 修复程序。如果该 relm 被 100,000 个其他 HORDERS(其中一些是)指向,那么修复似乎会影响他们中的很多人,永远(或直到内存耗尽——以较早者为准)
如果我关闭延迟加载,这不会发生,但我真的应该期望修复程序回溯数据库中的所有关系吗?还是有其他问题?如果有,是什么?
【问题讨论】:
标签: c# entity-framework entity-framework-4 poco