Catel上的SerializationException和延迟加载

时间:2018-01-13 09:33:26

标签: c# entity-framework catel

我创建了项目whith catel 5.2和Orc.EntityFramework 2.0.1。 Model是EF 6.2实体(继承自ModelBase)。当我试图打开模态winodw,并创建我的对象装饰[模型]并绑定DB,抛出“System.Data.Entity.DynamicProxies是不期望的”。 我找到了两个解决这个问题的方法:

1)禁止在构造函数DbContex中创建代理

Configuration.ProxyCreationEnabled = false;

2)使用

[Model(SupportedIEditableObject = false)] 

但我不想失去“自动取消”功能

那么,如何正确地做到这一点?

第二个问题。我的模型它有两个对象,它们彼此相关,多对多。所以,lezy load不起作用。为了通过引用下载对象,我必须在存储库上使用.Include(“”)。例如

var projects = new ObservableCollection<Project>(projectRepositiry.GetAll().Include("Employees"));

如果我不使用.Include()然后尝试在代码中访问项目中的Employees集合,则集合为空!虽然它应该加载! 好吧,它可以在我需要所有对象时使用,但如果我只想下载一个对象?

如果我使用

var project = projectRepositiry.GetByKey(1);

项目中的集合员工(虚拟参考)为空。我不能在GetByKey()上使用.Include()。如何使“懒加载”工作?

0 个答案:

没有答案