У меня есть минимальный регистр следующим образом: -
Table Posts
PostID - PK
PostDateTime
Table LocalisedPosts
PostID - JointPK
Culture - JointPK
LocalisedTitle
LocalisedBody
В таблице LocalisedPosts всегда будет соответствующая запись для PostID, который существует в таблице Posts с культурой "en".Он может содержать записи для других культур, таких как «es», «fr» и т. Д.
Как создать простейший запрос, который будет возвращать все сообщения с текущей культурой, если она доступна, или, если нетdefault "en" culture.
Я думал так: -
string lang = "fr" // lang is supposed to be the current culture (i.e. Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName)
var LocalisedPosts =
from p in Posts
join pl in LocalisedPosts on p.PostID == pl.PostID
where pl.culture == lang || pl.culture == "en"
select new {p.PostID, p.PostDateTime, pl.LocalisedTitle, pl.LocalisedBody};
Но это приведет к записи для "fr" и "en" в некоторых строках.Я думаю, мне нужно использовать orderby / Different / First и / или что-то еще, но я не могу понять это.Я использую "Или Остальное", а не "Или", хотя.