Хорошо, очевидно, я борюсь с .net здесь ... и ответ, вероятно, заключается в том, что я лаю не на том дереве и должен просто продолжать использовать тот тип проектирования баз данных, который я использовал бы 5 лет назад.
Я хочу иметь абстрактный объект «Клиент» и иметь 2 унаследованных объекта «Поставщик и клиент».
Отношение между клиентом и поставщиком, и клиентом составляет 1: 0/1
ЭтоПохоже, что это означает, что решение, основанное на наследовании, будет работать хорошо, так как оно позволит мне писать меньше проверочного кода, а также будет управлять строго типизированными коллекциями.клиентская таблица и отказ от предоставления вам одинакового идентификатора, на который ссылаются таблицы клиента и поставщика.
когда вы входите в базу данных и редактируете этот идентификатор вручную, чтобы он был одинаковым для обоих унаследованных объектов, вы получаете проблемы, потому чтоКоллекция клиентов имеет индекс столкновения (не задумываясь).
В результате у меня не может быть клиента, который выступает в роли как поставщика, так и клиента (меня порадовала идея о двух отдельных объектах с одинаковым идентификатором).
Это приводит к вопросу о том, как лучше всего работать.смоделируйте этот сценарий ... Мне грозит необходимость условного соединения и логических полей для 'isCustomer', 'isSupplier' или таблицы поставщиков и клиентов, которая присоединяется к клиенту и пишет код для поддержания отношения 0-1 сэто.
Кто-то еще должен был иметь такого рода проблемы?Нет элегантных решений?
альтернатива: мне нужно несколько видов одного и того же объекта.Это означает, что я не могу просто иметь целочисленное значение в одном поле, определяющее, какие виды разрешены.Мне нужно использовать несколько полей bool, чтобы определить, какие виды объектов разрешены.
Возможно ли это в EF?Очевидно, что я могу создавать представления в БД, но id, скорее, делает это из EF и создает SQL.(хотя я уже определяю sp для установки различных ключей и ограничений в БД, но это означает, что мне все больше и больше приходится отказываться от использования EF для генерации моей схемы)