Свободный API для свойства навигации двумя способами - PullRequest
0 голосов
/ 17 марта 2012

Классы

public class ProductType
{
    public Guid ID { get; set }
    public string Name { get; set }
    public ICollection<ProductCategory> Categories { get; set }
}

public class ProductCategory
{
    public Guid ID { get; set }
    public string Name { get; set }
    public ProductType ProductType { get; set; }
}

Конфигурация

ProductTypeConfiguration

HasMany(p => p.Categories).WithRequired().WillCascadeOnDelete(false);

Вопрос

Обратите внимание на свойства Categories и ProductType

Отношение один (ProductType) ко многим (ProductCategory), однако ProductCategory связано с одним ProductType!

В моей базе данных создается два ФКС! Как будет конфигурация ( с использованием FluentAPI ) для ситуации такого типа ??

Спасибо !!!

1 Ответ

7 голосов
/ 17 марта 2012
HasMany(p => p.Categories)
    .WithRequired(c => c.ProductType) // specify inverse navigation property here
    .WillCascadeOnDelete(false);

Если вы опустите лямбду для свойства навигации в WithRequired EF предполагает, что Category.ProductType принадлежит другому второму отношению - что является причиной второго внешнего ключа в вашей таблице базы данных.

...