как установить внешний ключ для нескольких таблиц - PullRequest
0 голосов
/ 24 марта 2019

У меня есть класс Articolo и класс Variante. Проблема в том, как настроить внешний ключ класса Stock, который ссылается на Articolo и Variante Мой список товаров выглядит так: Article1-variante1 Article1-variante2 Article1-variante3 Статья 2-noVariante ... и так далее

В Esistenze у меня есть Article1-variante1-5 Article1-variante2-10 Article1-variante3-100 Статья 2-noVariante-0

class Articolo{
 public string Codart { get; set; }//key
  ...
 public List<Variante> Varianti { get; set; }
 public Esistenza Esistenza { get; set; }
}

class Variante{
 public string Codart { get; set; }//key
 public string Variante { get; set; }//key
}

class Esistenza
{
 public string Codart { get; set; }//key
 public string Variante { get; set; }//key
 public int Esistenza { get; set; }

public Articolo Articolo { get; set; }

}

//sqlite
CREATE TABLE Esistenze( 
[Codart] TEXT NOT NULL, 
[Codvar] TEXT NOT NULL, 
[Esiste] REAL NOT NULL, 
CONSTRAINT [PK_Esistenze] PRIMARY KEY ( [Codart], [Codvar] ), 
CONSTRAINT FK_Articoli FOREIGN KEY (Codart) REFERENCES Articoli(Codart) ON DELETE CASCADE, 
CONSTRAINT FK_Varianti FOREIGN KEY (Codvar) REFERENCES Varianti(Codvar) ON DELETE CASCADE 
)

public void Configure(EntityTypeBuilder<Esistenza> builder)
        {
            builder.HasKey(e => new {e.Codart, e.Codvar});
            builder.Property(e => e.Esiste).IsRequired();

             builder
           .HasOne(a => a.Articolo)
           .WithOne(e => e.Esistenza)
           .HasForeignKey<Esistenza>(f => new {f.RkaCodart,f.RkaCodvar});
 }

я получаю ошибку Связь между 'Esistenza.Articolo' и 'Articolo.Esistenze' со свойствами внешнего ключа {'Codart': string, 'Codvar': string} не может быть нацелена на первичный ключ {'Codart': string}, поскольку он несовместим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...