Linqは初めてです。私は強く型付けされたデータセットを使用していますが、オブジェクトを作成するためのLinqのアイデアが好きです。
現在、データセットを使用して、tblProductsとtblProductSettingsからデータを結合するテーブルを取得しています。
製品はWebサイトごとに一意のtblSettings行を持つ複数のWebサイトにサービスを提供するため、これは1対多の関係ですが、WebサイトごとにtblSettingsの行が常に1つあると想定されています。
例 :
Select * from tblproducts, tblProductSettings where tblproducts.ProdID = tblProductSettings.ProdID and tblProductSettings.CreatorID = @CreatorID
データセットは、設定を使用して製品をループして表示するための優れたテーブルを提供します。
Linqは、tblProductSettingsをコレクションとして持つtblProductsオブジェクトを提供します。設定を取得するために毎回コレクションをループする必要はありません。製品ごとに新しいSQLクエリを作成し、設定へのアクセスを面倒にすると思います。
カスタムオブジェクトtblProductsAllを作成できますが、このオブジェクトを埋める唯一の方法は...
var Product = from p in context.tblProducts
join ps in context.tblProductSettings on p.ProdID equals ps.ProdID
where p.CreatorID == 1 && ps.ProdCreatorDisplay == 1
select new tblProductsAll()
{
ProdTitle = p.ProdTitle,
ProdPrice = ps.ProdPrice
};
次に、このモデルをかみそりのテンプレートに渡すことができます。
私の質問は...プロパティを設定するより良い方法はありますか?20以上の異なるプロパティがあり、同じオブジェクトが異なるwhere句を使用してサイトに存在するたびに、コードを繰り返して設定し続ける必要はありません。この繰り返しを止める方法はありますか?つまり、オブジェクトを自動的にマッピングするか、selectnewステートメントを再利用します。
どんな助けでも大歓迎です。