Как преобразовать поток Java 8 в массив?

Если вы хотите в полной мере использовать 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 он не представлен как отдельный объект. В связи с этим вы должны следовать некоторым специальным правилам.
  • При создании ассоциации вам не нужны оба конца ассоциации. Достаточно иметь дочерний объект и PK родительского объекта, но значение PK должно быть уникальным. Поэтому при использовании ассоциации внешних ключей вы также должны назначать временные уникальные идентификаторы вновь сгенерированным объектам, используемым в отношениях.
  • Эта ассоциация не отображается, а вместо этого определяет ссылочные ограничения.

Если вы хотите использовать ассоциацию внешних ключей, вы должны отметить Включить столбцы внешнего ключа в модели в Мастере моделей данных сущностей.

Изменить:

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

694
задан vaxquis 28 December 2015 в 05:46
поделиться