gpt4 book ai didi

c# - 具有对象类型的 Entity Framework 复合主键

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:45 25 4
gpt4 key购买 nike

我首先使用实体​​框架代码,我想从我的代码生成数据库,如下所示:我有 2 个实体类,例如:

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...)的主键我该如何解决这个问题?

最佳答案

您需要将组合键添加到您的 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; }
}

关于c# - 具有对象类型的 Entity Framework 复合主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26373240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com