Entity framework 实体框架-延迟加载,加载子实体问题

Entity framework 实体框架-延迟加载,加载子实体问题,entity-framework,linq-to-sql,linq-to-entities,reverse-engineering,Entity Framework,Linq To Sql,Linq To Entities,Reverse Engineering,我有一个这样的模型: 用户=>Profiles=>modules=>treatments (一个用户有一个配置文件,一个配置文件有许多模块,一个模块有许多处理) 该模型首先采用实体框架代码进行逆向工程 当我在一个简单的asmx文件中使用此命令请求用户时,我遇到了以下错误: A circular reference was detected while serializing an object of type 'CDU.Entities.Models.User'. 这是因为配置文件实体会与拥有

我有一个这样的模型:

用户=>Profiles=>modules=>treatments

(一个用户有一个配置文件,一个配置文件有许多模块,一个模块有许多处理)

该模型首先采用实体框架代码进行逆向工程

当我在一个简单的asmx文件中使用此命令请求用户时,我遇到了以下错误:

A circular reference was detected while serializing an object of type 'CDU.Entities.Models.User'.
这是因为配置文件实体会与拥有POP文件的用户列表相对应。。。等等

在我的数据上下文中,我禁用了延迟加载,对于身份验证来说似乎还可以,在检索到的用户配置文件中,我有配置文件Id,但没有加载配置文件实体

            this.Configuration.LazyLoadingEnabled = false;
太好了

一旦通过认证,我必须根据他的个人资料中的模块和处理构建用户菜单

因此,我要求对象加载配置文件:

        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'.
为什么配置文件是“延迟加载”

我需要按需包括这些实体。。。
我该怎么办呢?

试着获取个人资料

  profile = (from p in db.Profiles 
                where p.User.UserName.Equals(login) &&
                      p.User.Password.Equals(encryptedPassword)
                select p).FirstOrDefault();

嗨,kirsten g,不起作用,包含应用于实体。。。user=(从db.Users中的u开始,其中u.UserName.Equals(login)和&u.Password.Equals(encryptedPassword)选择u)。//您不能在此处使用Include!包括(“配置文件”).FirstOrDefault();你应该把
.Include(“Profile”)
放在
db.Users之后
我对我之前的建议做了很大的修改,这样现在就可以只检索到Profile了。嗨,Kirsten g,我看到你的解决方案了,你想加载Profile,然后把它分配给用户,这样就行了,但是Include(“Profile”)包括子实体??