powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework и составные ключи в представлениях
1 сообщений из 1, страница 1 из 1
Entity Framework и составные ключи в представлениях
    #36006682
Alkatraz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу тестовый проект для базы на EF.

В основе лежат таблицы, содержащие помимо реальных данных еще и версии строк. Представления фильтруют таблицы и на выходе выдают те самые реальные данные, отфильтрованные от их старых версий.

Представления вполне редактируемые, за исключением одного поля, носящего системный характер, но которое является частью "ключа" представления.

Примерная структура таблиц такова:

[code] - UniqueIdentifier - уникальный ключ записи (конкретной версии строки) [Primary Key]
[ID] - UniqueIdentifier - уникальный ключ группы записей (версий строк)
[Stamp] - DateTime - время создания записи
...

Представления фильтруют таблицы по дате создания версии строки и на выходе получают данные следующей структуры:

[SystemDate] - DateTime - системная дата текущего представления данных (берется из специальной таблицы)
[ID] - UniqueIdentifier - уникальный код записи для текущего [SystemDate] (в таблице играет роль уникального кода группы версий записи)
...

[Primary Key] в данном случае является комбинация ([SystemDate], [ID])

Задача - сделать вменяемую модель данных в EF.

Все представления имеют двойной ключ по приведенному выше примеру. Вносить изменения в представления EF отказывается напрочь, так что будут использоваться CRUD процедуры.

Вопрос - я так и не смог сделать нормальные отношения при составных ключах. Порыскал по интернету - похоже полный швах с этим творится. Выход есть, или проще не делать отношений вообще в таком случае?

Есть вариант искусственно задать уникальный ключ в представлении только поле [ID] и фильтровать потом уже по [SystemDate]. Только как быть с Detail таблицами - их тоже придется фильтровать при подгрузке. Тогда можно сказать прощай автоматическому отображению Master-Detail отношений. Фильтровать Detail явно, при переходе на новую запись в Master?

Еще вопрос - как EF обновляет записи? Обновляет ли он данные сразу после создания (как получает значения по умолчанию)? Или после сохранения? Или вообще не обновляет- только явно обновлять в коде?

Буду благодарен за обсуждение!.. :)
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework и составные ключи в представлениях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]