Если вы хотите в полной мере использовать ORM, вы обязательно будете использовать ссылку Entity:
public class Order
{
public int ID { get; set; }
public Customer Customer { get; set; } // <-- Customer object
...
}
. Когда вы создаете модель сущности из базы данных с помощью FK, она всегда будет генерировать ссылки на сущности. Если вы не хотите их использовать, вы должны вручную изменить файл EDMX и добавить свойства, представляющие FK. По крайней мере, это было в Entity Framework v1, где допускались только независимые ассоциации.
Entity framework v4 предлагает новый тип связи, называемый ассоциацией внешних ключей. Наиболее очевидным различием между независимой и внешней ключевой ассоциацией является класс Order:
public class Order
{
public int ID { get; set; }
public int CustomerId { get; set; } // <-- Customer ID
public Customer Customer { get; set; } // <-- Customer object
...
}
Как вы можете видеть, у вас есть как свойство FK, так и ссылка на сущность. Существует больше различий между двумя типами ассоциаций:
Независимая ассоциация
ObjectStateManager
. У него есть свой EntityState
! Ассоциация внешних ключей
ObjectStateManager
он не представлен как отдельный объект. В связи с этим вы должны следовать некоторым специальным правилам. Если вы хотите использовать ассоциацию внешних ключей, вы должны отметить Включить столбцы внешнего ключа в модели в Мастере моделей данных сущностей.
Изменить:
Я нашел что разница между этими двумя типами ассоциаций не очень хорошо известна, поэтому я написал короткую статью , в которой подробно описывается это и мое собственное мнение об этом.