0

私は「製品」を扱うプロジェクトを持っています。製品にはさまざまな属性があり、すべて製品テーブルに格納されています。パフォーマンスの問題により、製品の評判に関する情報を格納する「評判」と呼ばれるテーブルがあります。

「製品」クラスには、さまざまな属性用の多くのプロパティと、評判情報用のプロパティがあります。

linq を使用して、結合を使用してデータベースにクエリを実行したいと考えています。

問題は、「製品テーブルからのすべてが製品クラスのそれぞれのプロパティに入力され、評判情報が「評判」プロパティに入力される必要がある」とどのように言えばよいですか?

私はこのコードを持っています。私は近くにいると感じていますが、まだ管理していません...

var product = (from product in product.Table
                     join reputation in reputation.Table 
on product.ProductId equals reputation.ProductId
                     select new Product { Reputation = reputation
                     }).SingleOrDefault();

他の属性はどこで設定しますか? 「Product = Product.*」のようなもの

ありがとう!

編集:製品クラスには評判情報が含まれています。パフォーマンスの問題のためにデータベースで分離されました

4

2 に答える 2

0

私が調査できる限り、それは不可能ですが、別の解決策は、次に示すように、最初に製品を検索してから評判を検索し、後でそれらを手動でマージして、選択をバッチ処理することです。

http://tonesdotnetblog.wordpress.com/2008/07/23/linq-to-sql-batches-and-multiple-results-without-stored-procedures-by-tony-wright/

于 2012-08-15T23:15:47.327 に答える
0
  • 評判である追加のフィールドがあり、製品クラスにないため、新しい製品を選択することはできません(私は思います)。

  • 結果が複数ある場合、 SingleOrDefault() は例外をスローするため、この場合、それを使用しても意味がありません。

  • select new Product の代わりに、select new { all fields you need to populate = 対応する値} 必要なものをすべて明示的に記述する必要があります。product.* などは使用できません。

于 2012-08-14T01:41:58.667 に答える