Код EF6 - первый составной внешний ключ с Fluent API - PullRequest
0 голосов
/ 22 ноября 2018

У меня проблемы с созданием отношения один-один (ноль) внешнего ключа в коде первого EF6, свободный API

Мои сущности

 public class Invoice
    {
        public int AccountID { get; set; }
        public int InvoiceID { get; set; }
        public decimal Amount { get; set; }
        public Refund Refund { get; set; }
        internal static void ConfigureModel(DbModelBuilder modelBuilder)
        {
              modelBuilder.Entity<Invoice>()
                       .HasKey(e => new { e.AccountID, e.InvoiceID });
        }
    }

public class Refund 
    {
        public int AccountID { get; set; }
        public int RefundID { get; set; }
        public decimal Amount { get; set; }
        public int InvoiceID { get; set; }
        public Invoice Invoice { get; set; }
        internal static void ConfigureModel(DbModelBuilder modelBuilder)
       {
             modelBuilder.Entity<Refund>()
                      .HasKey(e => new { e.AccountID, e.RefundID });
             modelBuilder.Entity<Refund>()
                .HasRequired(e => e.Invoice )
               // .HasForeignKey(e => new { e.AccountID, e.InvoiceID});
       }
    }

Я не могу определить составной внешний ключв таблице возврата с использованием свободного API

Если я изменю

public Refund Refund { get; set; } 

на

public ICollection<Refund> Refund{ get; set; } 

Тогда я могу добавить это отношение как

modelBuilder.Entity<Refund>()
                .HasRequired(e => e.Invoice)
                .WithMany(e => e.Refund)
                .HasForeignKey(e => new { e.AccountID, e.InvoiceID});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...