LINQ TO SQLでデータを取得していたのですが、
今回新たに取得するフィルードを増やすことになりました。
(WHERE句の条件は変わりません)
例えば以下のようなクエリをつかった関数があったとして
今回新たに取得するフィールドが必要になった場合は
別の関数を作るしかないのでしょうか。
(バージョン互換のため、古いIFは残したいです)
今後取得するフィールドが増えていく毎に同じような名前の
同じような関数が増えてしまってカッコ悪いなあと感じています。
このような場合みなさんはどう対処されているのか知りたいです。
(クエリを引数にするとかは不可能なのでしょうか?)
var q =
from a in context.Group
where a.ID == "1"
select new
{
s.ID,
s.Name
};
アドバイスをいただけると助かります。
よろしくお願いします。
■No58660 (shu さん) に返信
例えば以下のようなクエリをつかった関数があったとして
今回新たに取得するフィールドが必要になった場合は
(以下の例ですと、CustomerのCityをselectしたい場合)
別の関数を作るしかないのでしょうか。
(バージョン互換のため、IDとNAMEを取得する機能は必要なんです)
今後取得するフィールドが増えていく毎に同じような名前の
同じような関数が増えてしまってカッコ悪いなあと感じています。
このような場合みなさんはどう対処されているのか知りたいです。
(クエリを引数にするとかは不可能なのでしょうか?)
internal static void GetCustomerData(string company)
{
NorthWindDataContext context = new NorthWindDataContext()
{
var records =
from c in context.Customer
where company == c.CompanyName
select new
{
ID = c.CustomerID,
NAME = c.CompanyName
};
}
foreach (var r in records)
{
// データ出力.
}
}
> internal static void GetCustomerData(string company) > { > NorthWindDataContext context = new NorthWindDataContext() > { > var records = > from c in context.Customer > where company == c.CompanyName > select new > { > ID = c.CustomerID, > NAME = c.CompanyName > }; > } > foreach (var r in records) > { > // データ出力. > } > }