【发布时间】:2020-01-28 05:04:55
【问题描述】:
我有一个与InventoryItem 类有关系的Stick 类。我有一个有一堆棍子的代码。我循环遍历这些棒以创建每个单独的 Stick 并将 InventoryItem 分配给该棒。
但是,当我尝试保存 DbContext 时,我收到一个错误
表 InventoryItems 的标识列出现 SqlException。
我不明白为什么,因为InventoryItem 在这之前就已经创建好了。我所做的只是在视图模型和视图之间来回传递InventoryItem。
请看下图。如果我删除突出显示的代码行,那么DbContext 将能够保存并且我的InventoryItem 将是空的。
请在下面查看更多代码参考并提出建议。如果您需要更多信息,请告诉我。谢谢。
棒类:
public class Stick
{
public int Id { get; set; }
public InventoryItem InventoryItem { get; set; }
}
InventoryItem 类:
public class InventoryItem
{
public int Id { get; set; }
public string Name { get; set; }
public string PartNumber { get; set; }
public double Length { get; set; }
public double GetLengthInInches => Math.Round(Length / 25.4, 0);
}
视图模型
public class OptimizationViewModel
{
public InventoryItem InventoryItem { get; set; }
public IList<Cut> TempInstanceCuts { get; set; }
public IList<Stick> TempInstanceSticks { get; set; }
public double[] Percents { get; set; }
public int CutQuantity { get; set; }
public double CutLength { get; set; }
public int stickCount { get; set; }
public OptimizationViewModel()
{
TempInstanceCuts = new List<Cut>();
TempInstanceSticks = new List<Stick>();
}
}
【问题讨论】:
-
请包括任何相关的
OnModelCreating和更新代码。 EF 很可能认为您的Id密钥不是由数据库生成的。 -
@JeremyLakeman 我的代码没有 OnModelCreating。我会阅读它,看看它是否可以帮助我解决这个问题。将报告我的发现。谢谢。
标签: c# sql-server asp.net-mvc entity-framework asp.net-core