У меня есть проблема со следующей схемой, я прикрепил ее. Я хочу запросить из моей базы данных только один объект с классом «Manufacturer
». Нравиться:
var res = new XPQuery<Manufacturer>(session);
А затем запросите всю информацию, связанную с моим состоянием, в LINQ.
Я пробовал XPLiteObject, XPObject, Association attribute, NoForeignKey Attribute, XPOCollection
и много чего, но мне ничего не помогло.
Я пробовал много подходов, и каждый раз у меня было новое исключение, например: SelectMany — метод не поддерживается. Невозможно установить внешний ключ в таблице. Дубликат первичного ключа.
У меня вопрос: как описать классы для нормального извлечения данных из бд?
УПД: Теперь мое решение: использовать .ToList() для каждого объекта. а затем используйте linq-запрос для соединения данных и сделайте необходимый запрос.
var manufacturer = new XPQuery<Manufacturer>(session).ToList();
var cars = new XPQuery<Car>(session).ToList();
var countries = new XPQuery<Country>(session).ToList();
var result = from m in manufacturer ....
@Дмитрий, да, ты прав. Я добавил свое решение в вопрос, вы можете посмотреть на него.
У меня нет опыта работы с DevExpress, но посмотрите на это => document.devexpress.com/eXpressAppFramework/112681/… ИЛИ document.devexpress.com/eXpressAppFramework/113637/… и посмотрите, может ли это вам помочь.
Итак, я нашел решение своего вопроса. Я скачал ДевЭкспресс, который может добавлять шаблоны для Visual Studio. Затем я выбираю Добавить новый элемент в мой проект с именем «Мастер DevExpress ORM DataModel». Этот мастер может создавать постоянные объекты для существующей базы данных. После этого я могу запросить базу данных со следующим синтаксисом:
var manufacturer = new XPQuery<Manufacturer>(session).Select(x => x....)...;
Но если вы хотите использовать .ВыбратьМного() в своем запросе LINQ, вы должны использовать .Составлять список(), а затем использовать .ВыбратьМного(). Я столкнулся с множеством проблем, когда пытался присоединиться или выполнить некоторые другие операции, связанные с LINQ. Ну а если вылезли какие-то ошибки, то сначала после .Выбирать() попробуйте .Составлять список(), а потом уже выполняйте свою операцию.
Я думаю, вы хотите «включить» ваши упомянутые свойства, верно? Что означает «детализация» от 1 объекта к другим?