2016-10-14 4 views
1

Я переключил свой существующий проект с EDMX на CodeFirst, и я застрял с тем, что мне кажется очень простым, но я не могу похоже, нашли решение.Как я могу настроить EF codefirst, чтобы не создавать внешний ключ для определенного столбца, который на самом деле не является внешним ключом

У меня есть объект (Настройки) с свойством «Группа», который НЕ является внешним ключом, и я не настроил его так.

У меня также есть другая сущность (ItemsGroups), id которой является IdGroup, и эти 2 сущности не должны подключаться через внешний ключ.

Затем, когда я запрашиваю «Настройки», я получаю столбец [ItemGroup_IdGroup].

Как я могу сказать EF, чтобы не генерировать этот столбец?

С уважением,

ответ

0

Вы можете установить свойство как Nullable так, что не повлияет на отношения между двумя субъектами.

[ForeignKey("Group")] 
    public int? IdGroup { get; set; } 

Для других решений вам необходимо удалить этот атрибут вручную.

+0

Это ключ, я не могу установить его как обнуляемые, а также я не могу удалить его :( –

+0

Вы можете добавить падение ограничения в классе DbMigration в Up() метод, чтобы применить изменения, SQL (» Query "). также ссылаются на ссылку: https://msdn.microsoft.com/en-us/data/jj591621(v=vs.113).aspx#customizing –

+0

thanx, но я этого не делаю проблема миграции –

0

Просто, чтобы ответить на мой вопрос.

Это была, как обычно, моя ошибка. Я добавил свойство в основной класс (но в другом файле как частичный, и он был там до того, как я переключился на Code First, в свою защиту) и назвал его плохо, поэтому Entity Framework поднял его и попытался создать внешний ключ. Я просто сделал это функцией и не навредил.

Но все же у меня бы был атрибут или что-то в зависимом классе, поэтому я могу отметить свойство «ОК, я не являюсь частью каких-либо отношений, не пытаюсь ничего со мной».

С уважением,

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

  • Нет связанных вопросов^_^