当我尝试将新实体添加到数据库中时,出现此错误。实体名称是DestuffedContainer
。该实体及相关实体的定义如下:
去填充容器:
[Table("DestuffedContainer")]
public class DestuffedContainer
{
public long DestuffedContainerId { get; set; }
public int Index { get; set; }
public string Description { get; set; }
public int? PackageQuantity { get; set; }
public string PackageType { get; set; }
public double? CBM { get; set; }
public string Location { get; set; }
public string MarksAndNumber { get; set; }
public int? ManifestWeight { get; set; }
public int? FoundWeight { get; set; }
public int? ManifestQuantity { get; set; }
public string ConsigneeName { get; set; }
public string Remarks { get; set; }
public string InvoiceFound { get; set; }
public string PackageFound { get; set; }
public long TellySheetId { get; set; }
public TellySheet TellySheet { get; set; }
public long ContainerIndexId { get; set; }
public ContainerIndex ContainerIndex { get; set; }
}
电视表:
[Table("TellySheet")]
public class TellySheet
{
public TellySheet()
{
DestuffedContainers = new List<DestuffedContainer>();
}
public long TellySheetId { get; set; }
public string TellyClerk { get; set; }
public DateTime? DestuffDate { get; set; }
public string DayNight { get; set; }
public long ShippingAgentId { get; set; }
public ShippingAgent ShippingAgent { get; set; }
public List<DestuffedContainer> DestuffedContainers { get; set; }
}
容器索引:
[Table("ContainerIndex")]
public class ContainerIndex
{
public long ContainerIndexId { get; set; }
public string BLNo { get; set; }
public int? IndexNo { get; set; }
public double? BLGrossWeight { get; set; }
public string Description { get; set; }
public string MarksAndNumber { get; set; }
public string ShippingLine { get; set; }
public bool? IsDestuffed { get; set; }
public string AuctionLotNo { get; set; }
public long? ContainerId { get; set; }
public Container Container { get; set; }
public DeliveryOrder DeliveryOrder { get; set; }
public OrderDetail OrderDetail { get; set; }
public DestuffedContainer DestuffedContainer { get; set; }
public Auction Auction { get; set; }
}
当我尝试添加已卸料的容器列表时,以下代码行中出现错误:
var dstfContainers = new List<DestuffedContainer>();
_tellySheetRepo.Add(tellySheet);
foreach (var container in containers)
{
var destuff = new DestuffedContainer
{
TellySheetId = tellySheet.TellySheetId,
ContainerIndexId = container.ContainerIndexId,
Index = container.IndexNumber ?? 0,
Description = container.Description,
PackageQuantity = container.Package,
PackageType = container.PackageType,
CBM = container.CBM,
ManifestWeight = container.ManifestWeight > 0 ? Convert.ToInt32(container.ManifestWeight) : 0,
FoundWeight = container.FoundWeight > 0 ? Convert.ToInt32(container.FoundWeight) : 0,
MarksAndNumber = container.MarksAndNumber,
Location = container.Location,
Remarks = container.Remarks,
InvoiceFound = container.InvoiceFoud,
PackageFound = container.PackageFoud
};
dstfContainers.Add(destuff);
var index = _cIndexRepo.Find(container.ContainerIndexId);
if (index != null)
{
index.IsDestuffed = true;
_cIndexRepo.Update(index);
}
}
_destuffRepo.AddRange(dstfContainers);
我不确定这个错误意味着什么,因为我没有明确指定 destuffedcontainer 实体的主键值,默认情况下它是 0。实体框架应该将其作为插入,但它会抛出错误。
几天前它工作正常,但我不确定自从导致此错误以来发生了什么变化。
我正在使用 Entity Framework Core 来对我的实体进行建模。我尝试了几种解决方案,但似乎都不起作用。如果您能帮助解决此问题,我将不胜感激。
EDIT
似乎当我将 DestuffedContainer 表中的外键 ContainerIndexId 值分配给实体时,出现此错误。我不确定它有什么关系。