Как настроить постоянный объект для «один ко многим» и «многие ко многим» одновременно? [ДевЭкспресс]

У меня есть проблема со следующей схемой, я прикрепил ее. Я хочу запросить из моей базы данных только один объект с классом «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 ....

Я думаю, вы хотите «включить» ваши упомянутые свойства, верно? Что означает «детализация» от 1 объекта к другим?

Dimitri 08.04.2019 10:41

@Дмитрий, да, ты прав. Я добавил свое решение в вопрос, вы можете посмотреть на него.

Stanislav Balia 08.04.2019 10:45

У меня нет опыта работы с DevExpress, но посмотрите на это => document.devexpress.com/eXpressAppFramework/112681/… ИЛИ document.devexpress.com/eXpressAppFramework/113637/… и посмотрите, может ли это вам помочь.

Dimitri 08.04.2019 10:52
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
201
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я нашел решение своего вопроса. Я скачал ДевЭкспресс, который может добавлять шаблоны для Visual Studio. Затем я выбираю Добавить новый элемент в мой проект с именем «Мастер DevExpress ORM DataModel». Этот мастер может создавать постоянные объекты для существующей базы данных. После этого я могу запросить базу данных со следующим синтаксисом:

var manufacturer = new XPQuery<Manufacturer>(session).Select(x => x....)...;

Но если вы хотите использовать .ВыбратьМного() в своем запросе LINQ, вы должны использовать .Составлять список(), а затем использовать .ВыбратьМного(). Я столкнулся с множеством проблем, когда пытался присоединиться или выполнить некоторые другие операции, связанные с LINQ. Ну а если вылезли какие-то ошибки, то сначала после .Выбирать() попробуйте .Составлять список(), а потом уже выполняйте свою операцию.

Другие вопросы по теме