我想用SQL Server查询中的数据填充我的Master Detail对象。
但是我似乎没有正确地形成查询的详细信息部分。
甚至可能吗?
我有以下课程
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; }
}
我想从SQL查询的输出中填充OrderCountReportHeader的实例
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 :(得分:0)
我使用两个单独的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;