鉴于下表,我想返回给定文化的本地化文本或给定文化不存在行的默认文化的文本。
图 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;