2

Я использую Entity Framework код первого, я хочу, чтобы генерировать БД из моего кода, как показано ниже: У меня есть 2 класса сущности, только короткий, например:Entity Framework составной первичный ключ с типом объекта

Product { 
public int id; 
public int name; 
} 

Month{ 
public int year; 
public int month; 
} 

сейчас Я хочу, чтобы сделать класс «отчет»

Report{ 
public Product product; 
public Month month; 
public decimal Price; 
} 

Я пытался добавить составной первичный ключ в моем DbContext

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Report>().HasKey(t => new { t.Product.ID, t.Month.ID }); 
} 

, но EF сообщает, что «Отчет» должен иметь первичный ключ от примитивный тип (такой как int, char ...) Как это исправить?

ответ

2

Вам необходимо добавить составной ключ в класс Report. Вам также понадобится идентификатор в вашем классе Month. Синтаксис ниже может не быть 100%.

public class Report 
{ 
    [Key(Order=0)] 
    public int ProductId { get; set; } 

    [Key(Order=1)] 
    public int MonthId { get; set; } 

    public Product product { get; set; } 

    public Month month { get; set; } 

    public decimal Price { get; set; } 
} 
Смежные вопросы