0

I have problem with using complex type in my Linq to Entities query .what I am trying to do is generate nested json object but I have problem using Value as property in my value class

 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();  
  • possible duplicate of [The entity cannot be constructed in a LINQ to Entities query](http://stackoverflow.com/questions/5325797/the-entity-cannot-be-constructed-in-a-linq-to-entities-query) – Backs Jul 30 '15 at 14:06

1 Answers1

0

I use the Anonymous type my linq query

        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();