Entity Framework 6を使用しています.EFを使用してデータベースの列を更新すると、レコードは問題なく更新されますが、更新クエリを使用してSQL Serverの列の値を変更した後、EFは列の値を更新せず、例外もスローしません。私はT-SQL DbContext.ChangeTracker.HasChangesを使用して、データベース内の値を変更した場合、通常でSQL Serverの列の値を変更した後、Entity Frameworkが列を更新しない
CustomerMandate customerMandate = await DbContext.CustomerMandates.FirstOrDefaultAsync(mandate => mandate.Id == 1, cancellationToken);
if (customerMandate != null)
{
customerMandate.State = newState;
await DbContext.SaveChangesAsync(cancellationToken);// not working
}
DbContext newContext = new DbContext();
CustomerMandate customerMandate1 = await newContext.CustomerMandates.FirstOrDefaultAsync(mandate => mandate.Id == 1, cancellationToken);
if (customerMandate1 != null)
{
customerMandate1.State = newState;
await DbContext.SaveChangesAsync(cancellationToken);// working
}
アプリケーションのアップデートの実行には、(OKですが)私は新しいコンテキストを作成し、DBからレコードを取得する場合はfalseを返しますが、それを変更するDbContext .ChangeTracker.HasChanges()はtrueを返します アイデア?
私たちとあなたのコードを共有してください。 –
私が間違っている場合は、EFを使用して更新ステートメントを使用すると正しく動作します。また、TSQL更新ステートメントを使用すると、正しく動作しません。 – Valkyrie
TSQLのレコードをどのように更新しようとしていますか?コードのどこかにブレークポイントを使用しているのですか? – MKR