gpt4 book ai didi

c# - 如何使用 Npoco FetchOneToMany?

转载 作者:行者123 更新时间:2023-11-30 17:09:21 25 4
gpt4 key购买 nike

我正在尝试使用 Npoco但在使用 FetchOneToMany 时遇到了一些问题

我有一个将 2 个表连接在一起的 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 属性 已填充且看起来不错。但是,由于某种原因,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");

最佳答案

它应该是这样工作的。

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

您必须确保您的列的选择顺序与通用参数的列出顺序相同。

关于c# - 如何使用 Npoco FetchOneToMany?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com