EF Core Primary Key не распознается с использованием Fluent APIC#

Место общения программистов C#
Anonymous
EF Core Primary Key не распознается с использованием Fluent API

Сообщение Anonymous »

Я в страже, что происходит с EF Core 7. Это не мой код и не моя база данных, поэтому не разрешены изменение в базе данных.

Код: Выделить всё

public class Order
{
public string CompanyId { get; set; } = null!;
public string ClientId { get; set; } = null!;
public int OrderId { get; set; }
public string ValidationCode { get; set; }
public ValidationRule? ValidationRule { get; set; }
// ...
}

public class ValidationRule
{
public string Code { get; set; }
// ...
}

public class MyContext : DbContext
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.ToTable("Order")
.HasKey(x => new
{
x.CompanyId,
x.ClientId,
x.OrderId
}

modelBuilder.Entity()
.HasOne(x => x.ValidationRule)
.WithMany()
.HasForeignKey(x => x.ValidationCode)
.IsRequired(false);

modelBuilder.Entity()
.ToTable("ValidationRule")
.HasKey(x => x.Code);
}
}
То, что происходит, EF Core - это выбрасывание InvalidoperationException , указывающее, что ValidationRule должен иметь определенный первичный ключ или использовать HASNOKEY () . Я установил точку останова, и называется OnModelCreating . Чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/796 ... fluent-api

Вернуться в «C#»