我希望能夠根據社交號碼是否正確輸入資料金額。我總是收到錯誤訊息SqlException: Cannot insert explicit value for identity column in table 'Customers' when IDENTITY_INSERT is set to OFF.。我嘗試向資料庫發出 sql 命令并將 Identity 設定為 ON,但仍然出現相同的錯誤。有可能做我想做的事嗎?
我的課
public class AddAmount : IAddAmount
{
private readonly ApplicationDbContext _db;
public AddAmount(ApplicationDbContext db)
{
_db = db;
}
public void Insert(int number)
{
Console.WriteLine("Add your amount you would like to insert: ");
try
{
var addAmount = _db.Customers.SingleOrDefault(x => x.SocialNumber == number);
addAmount.Amount = Convert.ToInt32(Console.ReadLine());
_db.Database.ExecuteSqlInterpolated($"SET IDENTITY_INSERT dbo.Customers ON");
_db.Add(addAmount);
_db.SaveChanges();
}
catch (Exception)
{
throw;
}
}
}
uj5u.com熱心網友回復:
這取決于您希望程式準確執行的操作。
我了解到您有一張客戶表。它已經充滿了客戶資料。您想更新金額。在這種情況下,不需要添加(并因此插入)記錄。你應該簡單地省略這個陳述句
_db.Add(addAmount);
可能是您希望插入具有此金額的新記錄(在這種情況下這不合邏輯,因為這會導致表中出現重復的“客戶”)。然后你應該首先從你的資料庫中獲取一個客戶。創建此物件的新副本,其中包含客戶所需的所有欄位(但沒有復制 ID 欄位)。更改此副本上的金額,然后添加記錄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/422286.html
標籤:
上一篇:跳到字串并拿走其他物品
下一篇:在變數中使用C#Select
