0
我有这样一个模型:实体框架 - 延迟加载,加载子实体问题
用户=>模式=>模块=>治疗
(用户对个人资料,个人资料有许多模块,一个模块有许多treatement)
这种模式是通过反向实体Framwork代码首先
,当我用这个,在一个简单的ASMX文件,要求一个用户engineeed,我得到这个错误:
A circular reference was detected while serializing an object of type 'CDU.Entities.Models.User'.
,这是因为配置文件实体contrains具有其pofiles用户的列表...等
在我的数据上下文,我禁用了延迟加载,它似乎确定进行身份验证,在我的检索用户个人资料,我有个人资料ID,但个人资料实体未加载。
this.Configuration.LazyLoadingEnabled = false;
太棒了!
一旦认证,我必须建立用户菜单的基础上,在他的个人资料模块和treatements。
,所以我问对象加载配置文件:
User user = new User();
using (cduContext db = new cduContext())
{
string encryptedPassword = Encryption.Encrypt(password);
user = (from u in db.Users
where u.UserName.Equals(login) &&
u.Password.Equals(encryptedPassword)
select u).FirstOrDefault();
// Including the user's Profile
user = db.Users.Include("Profile").FirstOrDefault();
}
return user;
配置文件被加载,但他的子实体过,例如此配置文件的用户列表!
,然后,我很享受了同样的错误:
A circular reference was detected while serializing an object of type 'CDU.Entities.Models.User'.
为什么曲线是“懒加载”?
我需要包括点播这些实体... 我怎样才能取悦?
嗨基尔斯滕克, 不工作,包括被applyed到实体... 用户=(从u在db.Users 其中u.UserName.Equals(登录)&& u.Password.Equals(encryptedPassword) 选择U).//你不能使用包含在这里!包括( “档案”)FirstOrDefault()。 – albarmat 2013-03-18 14:13:26
你应该把'.INCLUDE(“档案”)''的db.Users' – 2013-03-18 14:19:44
由于延之后,我编辑 – 2013-03-18 14:25:44