gpt4 book ai didi

c# - 具有相同字段的两个表之间的 LINQ 联合,然后在集合中返回

转载 作者:太空狗 更新时间:2023-10-30 00:40:48 27 4
gpt4 key购买 nike

我已经放弃尝试创建一个 linq 查询来检索一个 sql server View ,它是两个表之间的联合。我现在将尝试创建一个 linq 联合。

我有两个 View ,MemberDuesPaid 和 MemberDuesOwed。他们在两个领域都有相同的领域; (BatchNo、TranDate、DebitAmount、CreditAmount、ReceiptNo、CheckNo、SocSecNo)。

我的应用程序中还有一个名为 MemberTransaction 的辅助类。它具有所有相同的属性。

我如何在 socSecNo = ssn 传入的两个表之间进行联合?我想合并这两个表并返回 MemberTransaction 的 IEnumerable 集合。将两个表联合在一起后,我希望返回的集合按 trandate 降序排列。

最佳答案

您可以在 Linq Union 查询中执行此操作:

var infoQuery =
(from paid in db.MemberDuesPaid
select new MemberTransaction() {
BatchNo = paid.BatchNo,
TranDate = paid.TranDate,
DebitAmount = paid.DebitAmount,
CreditAmount = paid.CreditAmount,
ReceiptNo = paid.ReceiptNo,
CheckNo = paid.CheckNo,
SocSecNo = paid.SocSecNo})
.Union
(from owed in db.MemberDuesOwed
select new MemberTransaction() {
BatchNo = owed.BatchNo,
TranDate = owed.TranDate,
DebitAmount = owed.DebitAmount,
CreditAmount = owed.CreditAmount,
ReceiptNo = owed.ReceiptNo,
CheckNo = owed.CheckNo,
SocSecNo = owed.SocSecNo});

这应该会返回一个集合,其中所有内容都合并到一个列表中。

[编辑]

如果你想要不同的值,你可以在上面的语句之后做这样的事情(如果你把所有东西都括起来,你可以内联,但这更容易解释):

infoQuery = infoQuery.Distinct();

此时变量 infoQuery 将完全由 MemberTransaction 类型的对象填充,而不是 union 语句中的两种不同类型。

关于c# - 具有相同字段的两个表之间的 LINQ 联合,然后在集合中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24420478/

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