我有两张桌子:Users
& Profiles
。一个用户有一个配置文件 (1:1),一个配置文件可以影响多个用户,每个配置文件有很多模块,每个模块有很多操作。
我使用直接服务调用将此对象从 asmx 发送到 aspx 页面。
由于延迟加载,我得到了一个错误......所以我禁用了延迟加载。
this.Configuration.LazyLoadingEnabled = false;
这很好,我得到了我的用户,配置文件为空。
要构建菜单树,我必须检索配置文件。我包括它:
User user = new User();
using (cduContext db = new cduContext())
{
// get the user
string encryptedPassword = Encryption.Encrypt(password);
user = (from u in db.Users
where u.UserName.Equals(login) &&
u.Password.Equals(encryptedPassword)
select u).FirstOrDefault();
// Include the users profile
user = db.Users.Include("Profile").FirstOrDefault();
}
return user;
我在 javascript 调用函数中遇到了这个错误:
序列化“CDU.Entities.Models.User”类型的对象时检测到循环引用。
当我在 asmx 中(在发送之前)快速查看用户对象时,我发现配置文件已包含拥有此 pofile 的用户列表,每个用户都加载了他的配置文件......等等
请问有什么想法吗?