我正在尝试使用恩波科,但是FetchOneToMany遇到了一些问题
我有一个sql语句,它将两个表连接在一起,并输出所有列。
[TableName("TableA")]
[PrimaryKey("Id")]
public class TableA
{
public int Id { get; set; }
public DateTime EffectiveDate { get; set; }
public IList<TableB> TableBs { get; set; }
}
[TableName("TableB")]
[PrimaryKey("TableBId")]
public class TableB
{
public int TableBId { get; set; }
public int SomeNumber { get; set; }
public int Id { get; set; } // TableA id
}
Func<TableA, object> func1 = (x) => x.Id;
Func<TableB, object> func2 = (x) => x.Id;
var test = RelationExtensions.FetchOneToMany<AdminFeeBandGroup, AdminFeeBand>(unitOfWork.Db, func1,func2,sql, 1,1,"10-18-2012","10-22-2012");我在实际查询中传递4个参数。我得到了一个结果,TableBs property被填满了,看起来很好。但是,由于某些原因,EffectiveDate没有被填充,这是默认的C#时间。
我遗漏了什么?
编辑
这就是我的疑问
SELECT TableA.Id, TableA.EffectiveDate, TableB.TableBId, TableB.SomeNumber
FROM TableA INNER JOIN
TableB ON TableA.Id = TableB.Id
WHERE (TableA.EffectiveDate = @0)
Func<TableA, object> func1 = (x) => x.Id;
Func<TableB, object> func2 = (x) => x.Id;
var test = RelationExtensions.FetchOneToMany<AdminFeeBandGroup, AdminFeeBand>(unitOfWork.Db, func1,func2,sql, "10-18-2012");发布于 2012-10-23 00:23:01
它应该是这样运作的。
var sql = "select a.*, b.* from tablea a
inner join tableb b on a.id = b.id
where EffectiveDate = @0"
List<TableA> results =
db.FetchOneToMany<TableA,TableB>(x=>x.Id, sql, new DateTime(2012,10,18))必须确保所选列的顺序与列出泛型参数的顺序相同。
https://stackoverflow.com/questions/13019625
复制相似问题