Я создаю сайт на многих языках (en, fr, es), в моей базе данных У меня есть, например, таблицы стран с: id, name_en, name_fr и name_es как столбцы, которые содержат соответственно имя страны на английском, французском и испанском языках.Динамическая колонка в Linq
Я работаю с mvc 3, C# и инфраструктурой Entity.
У меня уже есть функция, которая возвращает текущий язык: GetCurrentLang() и возвращает строки «en», «fr» или «es».
Я хочу заказать по правой колонке и войти в свою правую колонку тоже.
Вот мой код:
using (var db = new InsoutingContext())
{
var queryCountries = from qCountries in db.Countries.Where(r => r.Cities.Count > 0)
orderby qCountries.Name_fr
select qCountries;
foreach (var item in queryCountries)
{
Countries.Add(new ListItem((item.Name_fr), item.Id.ToString()));
}
}
Thanx, чтобы ответить, Это то, что я не хочу делать, потому что у всех моих таблиц есть что-то вроде этого, я думаю, я должен сделать то же самое в странах .Add (новый ListItem ((item.Name_fr), item .Id.ToString())); и где угодно. Когда вы сказали «Из-за того, как вы его смоделировали», можете ли вы предложить мне, как я должен его смоделировать, например, в этой таблице. Я должен переехать, если я не отвечу :) Znd thanx для ответа снова – user2190624
Да, именно так вам нужно будет изменить вашу модель, как описано. Например. страны - Id, LanguageId, Name. Языки - Id, Code. Это самый простой пример отношения «один ко многим». – devdigital
Возможно, вы захотите ввести таблицу переводов, чтобы одна и та же страна не смоделировалась как разные объекты только для различий в культуре. – devdigital