В EF4.1 + вам нужно выставлять свойство внешнего ключа для зависимого объекта для принудительного установления отношения идентификации?

Если я хочу создать идентифицирующую связь, используя EF 4.1+ (или EF5 Beta), значит ли это, что я должен выставить свойство внешнего ключа для зависимого объекта? При использовании Fluent API? И когда DbContext находится в другом проекте, чем Entity?

Я не вижу другого способа сделать это. DbModelBuilder должен знать свойство внешнего ключа, чтобы включить его как часть первичного ключа. Однако, если свойство не отображается, а реализации Entity и DbContext находятся в разных проектах/библиотеках, нет способа его выставить (не хотите помещать InternalsVisibleTo в объект lib).

Ответ 1

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