LINQ to Entities 不支持指定的类型成员 'Title'

The specified type member 'Title' is not supported in LINQ to Entities

我在 Linq to Entity 中使用 Title 属性 时出错:

The specified type member 'Title' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

我的查询是:

        var db = FaraWorkspaceEntity.GetEntity();

        var query = from item in db.ProjectManagers
                    where item.ProjectID == projectID
                    select new UserListItem
                    {
                        ID = item.UserID,
                        Title = item.User.Title // Here is error
                    };

        return query.ToList();



    public class User : IdentityUser<string, UserLogin, UserRole, UserClaim>
    {
        [Required]
        [Display(Name = "نام")]
        [StringLength(50)]
        public string Firstname { get; set; }

        [Required]
        [Display(Name = "نام خانوادگی")]
        [StringLength(50)]
        public string Lastname { get; set; }

        public string Title
        {
            get { return this.Firstname + " " + this.Lastname; }
        }
    }

Title 是您实体中的 属性。在您的 table 中没有这样的栏目。 Entity Framework 无法将您的代码转换为 Sql。因此,您必须将代码更改为:

  var query = from item in db.ProjectManagers
              where item.ProjectID == projectID
              select new UserListItem
              {
                   ID = item.UserID,
                   Title = item.User.Firstname + " " + item.User.Lastname;
              };

但是,我建议你 select FirstNameLastName,当你想获得 Title 的值时,你的 getter 访问器将工作:

  var query = from item in db.ProjectManagers
              where item.ProjectID == projectID
              select new UserListItem
              {
                   ID = item.UserID,
                   Firstname = item.User.Firstname
                   Lastname =  item.User.Lastname;
              };