Что влияет на то, как обрабатывается флаг ключа сопоставленного представления? - PullRequest
0 голосов
/ 06 марта 2020

Мы используем Entity Framework для сопоставления представлений MS SQL с C# классами. Мы используем Devart Entity Developer в Visual Studio 2013 для редактирования этого отображения на основе подхода Database First.

При включении нового представления в модель Entity Developer (?) По умолчанию будет предполагать, что ключ для объект представления состоит из всех необнуляемых столбцов представления. То есть многие свойства сущности будут помечены маленькими символами ключа, как показано здесь:

entity property icons, including some key properties

Обычно мы устанавливаем атрибут «Ключ сущности» для большинства из этих столбцов false должен иметь достаточно небольшой набор ключевых столбцов (конечно, в зависимости от представления), потому что в противном случае аннотации в результирующем классе будут конфликтовать с некоторым из нашего кода.

Пока проблем нет.

Теперь Entity Developer по-прежнему считает все необнуляемые столбцы в отображении базового представления как части ключа, поэтому значок ключа на них остается на месте:

view column icons, all marked as key columns

В нашей базе данных development это не проблема. Все работает, и эти ключевые флаги столбцов не кажутся релевантными.

Как мы недавно обнаружили, это не случай в нашей базе данных release : Там, сохранение флагов ключевых столбцов вызовет исключение при сопоставлении класса сущности, указывая на то, что необходимо сопоставить все ключевые столбцы.

Мы убедились с помощью инструментов сравнения, что соответствующий код выглядит абсолютно идентичным: Сгенерированные классы C#, построитель моделей C#, который инициализирует отображение в коде, файл .edml, сценарии .sql, которые определяют представления ... все они абсолютно одинаковы. Кроме того, обе базы данных работают на одном и том же SQL экземпляре сервера.

Какая часть конфигурации или параметра базы данных может отличаться и, таким образом, отвечать за разные результаты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...