私はテーブル製品を持っています。製品は、1対多の関係でProductDescriptionに関連付けられています。ProductDescriptionには、製品ごとに複数の行を含めることができます。製品の説明に複数の翻訳がある場合は、複数の行があります。製品は言語と多対1の関係にあります。言語には、言語コード(en、esなど)とLanguageId(ProductDescriptionにもあります)があります。
ユーザーが商品をリクエストできるようにし、さらに特定の言語の説明のみを返すようにアプリケーションに指示したいと思います。
LinqtoEntitiesでこれを達成するのに時間がかかります。次のようなSQLを生成したい:
SELECT * FROM Product p
JOIN ProductDescription pd ON p.ProductId = pd.ProductId
JOIN (SELECT * FROM Language WHERE AlternateCode = 'es') AS l ON pd.LanguageId = l.LanguageId
(AlternateCodeは言語コードのフィールド名です)
誰かがこれを行う方法を知っていますか?私が今残しているのは、すべての言語をプルダウンしてから、Linq to Objectsでそれらをフィルターで除外することです。これは、確かに理想的とは言えません。製品ごとの言語コードをループで取得することはできますが、これには複数のSQLラウンドトリップが必要になりますが、これも望ましくありません。
助けてくれてありがとう!