私のGUIは、いくつかのlinq作業を行い、GUIにデータを返すサービスプロジェクトを呼び出しています。しかし、私はメソッドの戻り値の型と戦っています。いくつかの読書の後、私は私の方法としてこれを持っています:Linqと戻り値の型
public static IEnumerable GetDetailedAccounts()
{
IEnumerable accounts =(from a in Db.accounts
join i in Db.financial_institution on
a.financial_institution.financial_institution_id
equals i.financial_institution_id
join acct in Db.z_account_type on a.z_account_type.account_type_id
equals acct.account_type_id
orderby i.name
select new
{
account_id = a.account_id,
name = i.name,
description = acct.description
});
return accounts;
}
しかし私の発信者は少し戦っています。私は、戻り値の型をうんざりしている、または呼び出し元をうまく処理していないと思うが、私が望むようにうまくいかない。
これは私のGUIからメソッドを呼び出す方法です。
IEnumerable accounts = Data.AccountService.GetDetailedAccounts();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Accounts:");
Console.ForegroundColor = ConsoleColor.White;
foreach (var acc in accounts)
{
Console.WriteLine(string.Format("{0:00} {1}", acc.account_id, acc.name + " " + acc.description));
}
int accountid = WaitForKey();
ただし、私のforeachとacc - は機能しません。 accは、メソッドで設定した名前、説明、IDについてはわかりません。少なくとも私は正しいことに近いですか?
いいえ、同じプロジェクトですが、別々のプロジェクトに分割したいと思います。だから今は別々のものだとします。 – Craig
あなたのサービスはリモートにありますか?この引数型の代わりに 'var'を使うほうが良いでしょう。 –
私は多分、むしろむしろ "転送オブジェクト"を持つ共有クラスのlibを構築する必要がありますかと思います。私の方法では、データを取得し、Listにロードして返します。 linqを実行するプロジェクトとGUIの両方が型を知るでしょうか? –
Craig