【问题标题】:Problem in many-to-many relationship in .net entity model framework.net实体模型框架中的多对多关系问题
【发布时间】:2011-04-17 17:57:43
【问题描述】:

这是我的代码:

var q = (from m in context.aspnet_Users
                     where m.UserName.Equals(username)
                     select new { m, m.aspnet_Roles.SourceRoleName }).FirstOrDefault();

但它让我出错:

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

我如何使用接口表解决这个多对多关系,但 .net 框架删除接口表并生成与它的表映射的关联,这是多对多的。

我需要角色名称如何在这种模型中获得它?

【问题讨论】:

    标签: c# entity-framework entity-framework-4 linq-to-entities entity-relationship


    【解决方案1】:

    如果aspnet_Roles 是您的aspnet_User 实体的集合导航属性,而SourceRoleName 是您的aspnet_Role 实体的映射属性,您必须将其重写为:

    var q = (from m in context.aspnet_Users
             where m.UserName.Equals(username)
             select new 
                 { 
                     m, 
                     m.aspnet_Roles.Select(r => r.SourceRoleName) 
                 })
            .FirstOrDefault();
    

    如果您的 SourceRoleNameaspnet_Role 实体中的计算属性(.NET 代码中的自定义属性),则不能在 linq-to-entities 查询中使用它。您必须选择整个 aspnet_Role 实体,然后访问其计算属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多