Entity framework 4 EF4代码优先:延迟加载问题

Entity framework 4 EF4代码优先:延迟加载问题,entity-framework-4,Entity Framework 4,在我目前正在开发的网站上,我决定先试一试EF4代码。这似乎并不坏,尽管不支持enum意味着令人印象深刻的点被一个简单的短消息抵消了 无论如何,我现在的问题是,我有一个book对象,其中有一组作者。当我点击书评页面时——当无法将该书的作者添加到viewdata时,会抛出一个错误——表示该书的作者收藏为空 因此,我导航到管理页面,去编辑这本书,然后突然作者重新出现。所以我导航回评论页面,作者现在也出现在这个页面上 看起来它们不是第一次被加载的,但是出于某种原因,管理部分导致它们被加载,所以当我返回到

在我目前正在开发的网站上,我决定先试一试EF4代码。这似乎并不坏,尽管不支持enum意味着令人印象深刻的点被一个简单的短消息抵消了

无论如何,我现在的问题是,我有一个book对象,其中有一组作者。当我点击书评页面时——当无法将该书的作者添加到viewdata时,会抛出一个错误——表示该书的作者收藏为空

因此,我导航到管理页面,去编辑这本书,然后突然作者重新出现。所以我导航回评论页面,作者现在也出现在这个页面上

看起来它们不是第一次被加载的,但是出于某种原因,管理部分导致它们被加载,所以当我返回到评论页面时,一切都正常

如果我碰巧重新编译,然后直接进入评论页面,它们又消失了

我正在使用CreateObject set-via repository从上下文中获取书籍。此方法在管理页面和审阅页面上都使用


如果您能提供帮助,谢谢。

刚刚做了更多的调查,我知道为什么它会出现在管理页面上。通过调试后,我发现该书的authors集合最初为空。但是,当呈现一个包含系统中所有作者的选择列表时,就会填充其作者集合

因此,在我的审阅操作中,我从存储库中检索所有作者,而不以任何方式使用他们,然后我的书的集合也被填充


我想所有这些胡言乱语都会引出一个问题:我如何修复延迟加载,或者如何确保快速加载。我认为性能永远都不会是关键的,我已经受够了先对代码的吹毛求疵。我想我会在其他项目上暂时使用Active record/nhibernate。

要允许在POCO类上延迟加载,您必须将导航属性标记为虚拟。要强制加载,请在存储库中修改查询,并在查询的对象集上使用类似于Include(“Authors”)的内容