次のテーブルを考えると、特定のカルチャのローカライズされたテキスト、または特定のカルチャに行が存在しないデフォルト カルチャのテキストを返したいと考えています。
ダイアグラム http://lh4.ggpht.com/_gjsCWAV_CZc/ShW6hC-eozI/AAAAAAAACbY/mXaBfiZtBY8/s400/diagram.png
というわけで以下のデータで
資力
ID Name
1 Donkey
2 Elephant
ロケール文字列
ID CultureID ResID LocaleText
1 1 1 Donkey
2 1 2 Elephant
3 2 1 baudet
フランスの文化については、次のものを返すことができるようにしたいです
baudet
elephant
私が見た LEFT JOINS サンプルに基づいてさまざまなクエリを試しましたが、行き詰まっています。
var ct = from r in db.Resources
join lt in db.LocaleStrings
on r.ID equals lt.ResID into res
from x in res.DefaultIfEmpty()
select new
{
CultureID = x.CultureID,
LocaleText = x.LocaleText,
ResID = x.ResID
};
var text =
from c in db.Cultures
join t in ct
on c.ID equals t.CultureID into cults
from x in cults.DefaultIfEmpty()
select x;