Code First Fluent API: Отображение отношений - PullRequest
0 голосов
/ 14 декабря 2018

Нужна ваша помощь в настройке EF с повторением того же типа, либо с аннотацией данных, либо с Fluent API

public class Order
{
    [Key]
    public long Id {get; set;}

    public virtual long BillingAddressId { get; set;}
    public virtual Address BillingAddress { get; set;}

    public virtual long ShippingAddressId { get; set;}
    public virtual Address ShippingAddress { get; set;}   

    public virtual ICollection<LineItem> LineItems { get; set; }
    public virtual ICollection<ShippingLine> ShippingLines { get; set; }     

}

public class Customer
{
     [Key]
     public long CustomerId { get; set;}
     public virtual Address Address { get; set;}    
}

Попробовал следующее, но получаю эту ошибку: Невозможно определить составной первичный ключ для типа «Клиент» . Используйте ColumnAttribute (см. http://go.microsoft.com/fwlink/?LinkId=386388) или метод HasKey (см. http://go.microsoft.com/fwlink/?LinkId=386387) , чтобы указать порядок для составногопервичные ключи.

пожалуйста, просмотрите и посоветуйте и другие конфигурации, а не только для клиента

       modelBuilder.Entity<Order> (  )
            .HasRequired ( cr => cr.BillingAddress )
            .WithMany (  )
            .HasForeignKey ( cr => cr.BillingAddressId )
            .WillCascadeOnDelete ( true );

        modelBuilder.Entity<Order>()
            .HasRequired(cr => cr.ShippingAddress)
            .WithMany()
            .HasForeignKey(cr => cr.ShippingAddressId)
            .WillCascadeOnDelete(false);

        modelBuilder.Entity<LineItem>()
            .HasRequired(l => l.Order)
            .WithMany(cr => cr.LineItems)
            .HasForeignKey(l => l.OrderId)
            .WillCascadeOnDelete(false);

        modelBuilder.Entity<ShippingLine>()
            .HasRequired(c => c.Order)
            .WithMany(l => l.ShippingLines)
            .HasForeignKey(l => l.OrderId).WillCascadeOnDelete(false);

        modelBuilder.Entity<Customer>()
            .HasOptional(c => c.Address)
            .WithRequired(cr => cr.Customer);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...