WebProject.Data.Value'不能在LINQ到实体查询中构造

本文关键字:实体 查询 LINQ Value Data 不能 WebProject | 更新日期: 2023-09-27 18:05:39

我有问题使用复杂类型在我的Linq实体查询。我要做的是生成嵌套json对象,但我有问题使用值作为属性在我的值类

 public class ItemManagementViewModel
    {
        public string FormType { get; set; }
        public long FormControllerID { get; set; }
        public string FormControllerName { get; set; }
        public IEnumerable<Value> values { get; set; }
    }
        public class Value
        {
            public long RecordId { get; set; }
            public string Name { get; set; }
            public long? ParentId { get; set; }
            public Value Parent { get; set; }
        }
            var innerResult = (from innerValue1 in db.Values
                               join innerValue2 in db.Values on innerValue1.ParentId equals innerValue2.RecordId
                               join innerValue3 in db.Values on innerValue1.RecordId equals innerValue3.ParentId
                               where
                                   innerValue1.ParentId
                                   == (from va in db.Values where va.Name == formType select va.RecordId)
                                          .FirstOrDefault()
                               orderby innerValue1.RecordId
                               select
                                   new Value
                                       {
                                           RecordId = innerValue3.RecordId,
                                           Name = innerValue2.Name,
                                           ParentId = innerValue3.RecordId
                                       }).ToList();  

WebProject.Data.Value'不能在LINQ到实体查询中构造

我使用匿名类型的linq查询

        var innerResult = (from innerValue1 in db.Values
                           join innerValue2 in db.Values on innerValue1.ParentId equals innerValue2.RecordId
                           join innerValue3 in db.Values on innerValue1.RecordId equals innerValue3.ParentId
                           where
                               innerValue1.ParentId
                               == (from va in db.Values where va.Name == formType select va.RecordId)
                                      .FirstOrDefault()
                           orderby innerValue1.RecordId
                           select new 
                                   {
                                       RecordId = innerValue3.RecordId,
                                       Name = innerValue2.Name,
                                       ParentId = innerValue3.RecordId
                                   }).ToList();