我有两张桌子
1)BankAccount - >字段(BankAccountID,名称) 2)BnkTransaction - >字段(ID,金额,TransactionType,Total,BankId)FK(BankId)
这是两张桌子的图片 Database tables
我要做的是:我需要姓名,金额,信用卡或借记卡(交易类型),总计。 结果应该通过使用Entity Framework LINQ
按名称分组这是我尝试的代码,但我不确定如何使用group by获得所需的输出?如果是,那怎么样?
var joinResult = Entity.BnkTransactions
.Include("BankAccounts")
.Select(x => new
{
Name = x.BankAccount.Name,
Amount = x.Amount,
Credit = x.TransType == 1 ? x.TransType : 0,
DEBIT = x.TransType == 2 ? x.TransType : 0,
Total = x.Total
}).OrderBy(x => x.Name).ToList();
foreach (var item in joinResult)
{
string credit = item.Credit == 1 ? "Credit" : "---";
string Debit = item.DEBIT == 2 ? "Debit" : "---";
Console.WriteLine("Name:-{0} Amount: {1} Credit: {2} DEBIT: {3}
Total: {4}", item.Name, item.Amount, credit, Debit,item.Total );
}
请帮助我如何实现这一目标?
答案 0 :(得分:0)
您可以通过以下方式执行此操作:
(未经测试)
var joinResult = Entity.BnkTransactions
.Include("BankAccounts")
.GroupBy(x => x.BankAccount.Name, (key, g) => new
{
Name = key,
Transactions = g.ToList()
}).OrderBy(x => x.Name).ToList();
这应该会为您提供一个匿名类型,其中包含一个名称和附加到其上的事务列表。
看看你是否可以遍历它以输出你需要的结果。