Отношение EF4 0..1 приводит к ошибке 2016: условие не может быть указано - PullRequest
3 голосов
/ 09 апреля 2010

Это очень похоже на предыдущий вопрос (и может быть точно такой же вопрос), но я действительно не достаточно понял ответы, чтобы иметь возможность точно сказать.

Я использую Entity Framework 4 в Visual Studio RC1 для создания приложения-службы Azure (так что это .Net 3.5). У меня есть база данных с большим количеством шаблонов, таких как:

Thing                     ThingType
-------------             --------------
Id : int                  Id : int
Type : int

где Thing.Type ссылается на ThingType. Когда EF4 собирает модель из базы данных, генерируется ошибка, которая гласит:

Ошибка 2016: нельзя указать условие для члена столбца «Тип», так как он помечен как «Computed» или «Identity» StoreGeneratedPattern.

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

1 Ответ

2 голосов
/ 10 апреля 2010

В RC1 есть ошибка, из-за которой связи между ключами foregin продолжают отмечаться как StoreGeneratedPattern="Identity". Это может быть причиной проблемы, которую вы видите здесь, но я не могу сказать наверняка, так как ваша среда отличается. Взгляните на ваш файл EDMX, вы должны увидеть StoreGeneratedPattern = "Identity" только поле Id для Thing и ThingType, а не для отношения ThingThingType.

См. Также http://blog.abodit.com/2010/03/system-data-updateexception-a-value-shared-across-entities-or-associations-is-generated-in-more-than-one-location-check-that-mapping-does-not-split-an-entitykey-to-multiple-store-generated-columns/

Microsoft подтвердила, что эта ошибка исправлена ​​для RTM, и это хорошо, поскольку она влияет на вас каждый раз, когда вы обновляете модель из базы данных!

...