C# .net实体模型框架中的多对多关系问题

C# .net实体模型框架中的多对多关系问题,c#,entity-framework,entity-framework-4,linq-to-entities,entity-relationship,C#,Entity Framework,Entity Framework 4,Linq To Entities,Entity Relationship,这是我的密码: var q = (from m in context.aspnet_Users where m.UserName.Equals(username) select new { m, m.aspnet_Roles.SourceRoleName }).FirstOrDefault(); 但这让我犯了一个错误: 指定的类型成员 中不支持“SourceRoleName” LINQ对实体的访问。只有初始化者

这是我的密码:

var q = (from m in context.aspnet_Users
                     where m.UserName.Equals(username)
                     select new { m, m.aspnet_Roles.SourceRoleName }).FirstOrDefault();
但这让我犯了一个错误:

指定的类型成员 中不支持“SourceRoleName” LINQ对实体的访问。只有初始化者, 实体成员和实体导航 支持属性

如何使用接口表解决这一it多对多关系,但.net framework会删除接口表并生成与多对多表映射的关联


我需要角色名,在这种模型中我如何才能得到它

如果
aspnet\u角色
aspnet\u用户
实体上的集合导航属性,并且
SourceRoleName
aspnet\u角色
实体的映射属性,则必须像以下那样重写它:

var q = (from m in context.aspnet_Users
         where m.UserName.Equals(username)
         select new 
             { 
                 m, 
                 m.aspnet_Roles.Select(r => r.SourceRoleName) 
             })
        .FirstOrDefault();
如果
SourceRoleName
aspnet\u角色中的computed属性(.NET代码中的自定义属性),则不能在linq to entities查询中使用它。您必须选择整个
aspnet\u角色
实体,然后访问其计算属性