表示されているエラーは、最終選択で匿名型を宣言する方法が原因です。選択するプロパティ名以外を指定する場合は、メンバー名を指定する必要があります。詳細については、匿名型 (C# プログラミング ガイド)を参照してください。
クエリには他にもいくつかの問題があります。DateTime
また、値を比較することもできないためstring
、クエリに渡す前に日付パラメーターを作成する必要があります。1 つのアカウントの合計だけが必要な場合は、何.GroupBy
もする必要はありません。.Select
最後o => o.o.credit - o => o.o.debit
にコンパイルされません。あなたが欲しいのは だと思いますo => o.o.credit - o.o.debit
。
代わりにこれを試してください:
DateTime beginDate = ...
DateTime endDate = ...
p = db.Account_Transaction.Join(
db.Accounts,
o => o.AccountId,
p => p.ID,
(o, p) => new { o, p })
.Where(o => o.o.Date >= beginDate && o.o.Date < endDate && o.p.Name == "MKBank")
.Sum(o => o.o.credit - o.o.debit);