您可以在 Linq 联合查询中执行此操作:
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 语句中的两种不同类型填充。