EF5 db.Database.SqlQuery mapping returned objects

前端 未结 1 1564
一个人的身影
一个人的身影 2020-12-10 15:06

I have two C# classes

public class SearchResult
{
    public int? EntityId { get; set; }
    public string Name { get; set; }
    public Address RegisteredAd         


        
1条回答
  •  攒了一身酷
    2020-12-10 15:16

    SqlQuery doesn't support Complex Type

    What you should do is:

    internal class TempResult
    {
        public int? EntityId { get; set; }
        public string Name { get; set; }
        public int? AddressId { get; set; }
        public string Address1 { get; set; }
        public string Address2 { get; set; }
        public string Address3 { get; set; }
    }
    
    var tempResults = db.Database.SqlQuery(
        @"SELECT e.entity_id AS EntityId, e.entity_reg_name AS Name,
              a.address_1 AS [RegisteredAddress.Address1]
          FROM
              entity AS e
              LEFT JOIN address AS a ON e.entity_reg_addr_id = a.address_id",
        objectParameterList.ToArray()).ToList();
    
    querySearchResult = tempResults.Select(t => new SearchResult
    {
        EntityId = t.EntityId,
        [...]
        RegisteredAddress = new Address 
            {
                AddressId = t.AddressId,
                [...]
            }
    }
    

    0 讨论(0)
提交回复
热议问题