Я играю с LinqToSQL, используя существующую многоязычную базу данных, но сталкиваюсь с проблемами, связывающими довольно важные отношения один-к-одному, поэтому я подозреваю, что неправильно использую эту функцию для проектирования своей базы данных.
Предположим, две таблицы, Category и CategoryDetail. Категория содержит CategoryId (PK), ParentId и TemplateId. CategoryDetail содержит CategoryId (FK), LanguageId, Title и Description (на соответствующем языке) с комбинированным PK CategoryId и LanguageId.
Если я перетащу эти таблицы в конструктор LinqToSQL, полученная объектная модель будет иметь Категорию с коллекцией объектов CategoryDetail, что никогда не должно иметь место. Я хотел бы иметь возможность фильтрации по LanguageId на уровне DataContext, а это означает, что вся Category инкапсулирована в Category.CategoryDetail, а не все языковые версии инкапсулированы в Category.CategoryDetails.
Эта база данных прекрасно работала с моей старой библиотекой объектов (пользовательские BOL и DAL старой школы), но я боюсь, что LinqToSQL потребует, чтобы это изменилось, чтобы получить требуемый результат.
Каков наилучший способ сделать эти отношения (и языковую фильтрацию) как можно более плавными?