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角色
实体,然后访问其计算属性