gpt4 book ai didi

c# - Entity Framework 。违反 UNIQUE KEY 约束

转载 作者:行者123 更新时间:2023-12-05 03:06:55 25 4
gpt4 key购买 nike

我正在创建一个对象列表并将它们添加到我的 DbContext,然后保存它们。问题是我向数据库添加了一个唯一约束以停止具有重复数据的对象。

因为错误是在 SaveChanges 上引发的,所以我可以尝试单独保存每个对象并捕获错误。这是一个糟糕的解决方案吗?是否有更好的方法来处理它?<​​/p>

    using (FinanceDBContext financeDBContext = new FinanceDBContext())
{
foreach (var item in priceList)
{
item.Apimapping = null;
financeDBContext.Price.Add(item);
}

financeDBContext.SaveChanges();
}

我的价格对象

public partial class Price
{
public int PriceId { get; set; }
public decimal LastPrice { get; set; }
public decimal Bid { get; set; }
public decimal Ask { get; set; }
public DateTime DateCreated { get; set; }
public int? ApimappingId { get; set; }

public Apimapping Apimapping { get; set; }
}

最佳答案

首先检查提供列表中的重复项

var distinctBids = priceList.Select(p => p.Bid).ToList();
if (priceList.Count != distinctBids.Count())
return BadRequest(); // even the provided list have duplicates;

检查输入值是否重复

if (context.Price.Any(e=> distinctBids.Contains(e.Bid)))
return BadRequest(); // check for duplicates in database

之后可以安全地插入值

// Now its safe to add new prices;
foreach (var item in priceList)
{
item.ApimappingId = null;
context.Employees.Add(item);
}
context.SaveChanges();

您还需要按照 here 的描述将上述所有陈述放在一个牵引中

关于c# - Entity Framework 。违反 UNIQUE KEY 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48731623/

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