2015-10-07 3 views
1

У меня есть следующая проблема: я должен подключить Exiting Database с очень Ugly и не нормализованным дизайном. Итак, у меня есть много ForeignKeys с Not Null, но внешний ключ со значением 0 (Zero), поэтому он был ссылкой Null.Внешние ключи структуры Entity Framework с нулевыми значениями

Но в некоторых таблицах у меня также есть Nullable FKs, но и Zero Values.

Могу ли я настроить структуру сущностей с помощью какой-либо конвенции или что-то еще. Поэтому EF знает, если столбец Not Null, и я говорю, что ссылка является опциональной в Fluent, она записывает нуль в столбце Not Null.

Единственное другое решение состоит в том, чтобы записывать представления для доступа к чтению и Sps для доступа к записи для создания действительной абстракции на базе данных. Но с более чем 500 таблицами было несколько работ.

Итак, у кого-то есть идея для лучшего решения.

Дополнительное уведомление, база данных находится в режиме рефакторинга, поэтому через один-два года она нормализована и не имеет такого уродливого дизайна.

Система базы данных MSSQL IST

Извините за мой плохой английский.

ответ

1

Так EF знает, если столбец не Null и я Произнесите Ссылка опционн в Fluent это написать Ноль в колонке не Null.

Я бы писать, как это при вставке

myTable.destFK_Field = sourceFK_Field ?? 0 

SQL-эквивалент:

myTable.destFK_Field = COALESCE(sourceFK_Field,0) 

Предполагая, что вы создаете модели из EDMX, я думаю, что там не так много вариант, вы можете добавить к моделям.

Смежные вопросы