1

Type、Translation、Language Type の 3 つのテーブルがあるとします。Type にはリストがあります。

First
Second
Third

翻訳には、2 つの言語のそれぞれでそのタイプ リストの値が含まれます。

Value1  german
Value1  french
Value2  german
Value2  french

等...

現在、Type テーブルから読み取る言語を受け入れるストアド プロシージャを使用しており、変換された値が Translation テーブルに存在する場合は値を上書きします (Type テーブルから値を返すだけではない場合) ... それが理にかなっていることを願っています。

私が現在使用しているストアド プロシージャは、次のようなものになります。

    CREATE PROCEDURE [dbo].[GetTypesLocalized]   
 -- Add the parameters for the stored procedure here   
 @languageId int 
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  

    -- Insert statements for procedure here  
 SELECT ISNULL(tr.Name, t.Name) AS Name,  
 FROM Type AS t  
  LEFT OUTER JOIN Translation AS tr ON  
   (tr.FK = t.Id AND tr.Type = 'type' AND tr.LanguageId = @languageId)  
END  

linq 構文を使用して EF でそのクエリをどのように表現しますか?

4

1 に答える 1

0
var query = from t in db.Type
            from tr in db.Translation
            where t.Id == tr.FK && tr.Type == "type" && tr.LanguageId == langId
            select tr.Name == null ? t.Name : tr.Name;
于 2013-01-31T20:42:22.480 に答える