2016-10-21 14 views
0

SQL Serverクエリのデータを使用して、マスタ詳細オブジェクトを作成したいとします。SQLクエリからオブジェクトを取り込む

ただし、クエリの詳細部分を正しく作成していないようです。

それは可能ですか?

私は、次のクラス

public class OrderCountReportHeader : IMyReport 
{ 

    [Key] 
    public int Id { get; set; } 
    public DateTime RunAt { get; set; } 
    public string Name { get; set; } 
    public virtual List<OrderCountReportDetail> Details { get; set; } 

} 

public class OrderCountReportDetail { 
    public virtual OrderBankReportHeader Header { get; set; } 
    public string ProductCode { get; set; } 
    public int Quantity { get; set; } 

}

を持っていると私は、私は別の2を使用して巻き取ったSQLクエリ

private static string ReportSql() { 

     return @" 
       SET NOCOUNT ON; 
       select 1 as Id, getdate() as RunAt, 'test' as Name; 
       select 'RC' as ProductCode , 5 as Quantity; " 
      ; 
    } 

var result = context.Database.SqlQuery<OrderCountReportHeader>(sql).ToArray()[0]; 

    Assert.AreEqual(@"test", s.Name); // true 
    Assert.AreEqual("RC", s.Details[0].ProductCode); // fails because Details is null 

答えて

0

の出力からOrderCountReportHeaderのインスタンスを移入したいです私はより良い方法を知って満足しているが、SqlQuery を呼び出します。

var header = connect.Database.SqlQuery<OrderCountReportHeader>(ReportSqlHeader()).ToArray()[0]; 

      var details = connect.Database.SqlQuery<OrderCountReportDetail>(ReportSqlDetails()).ToList(); 
      foreach (var det in details) 
      { 
       det.Header = header; 
      } 
      header.Details = details; 
関連する問題