のためのSQLの精度を生成する方法を変更するにはどうすればこのようにEntity Frameworkのことでデータを更新しようとすると:私は取得Entity Frameworkのは、私はテーブルの使用ID & DateTime列がPKもありますが、日時
using (Entities context = new Entities())
{
var item = (from item in context.BatchData
where item.Id == 2
select item).FirstOrDefault();
item.Title = "EF6TEST";
context.SaveChanges();
}
をエラー
ストアの更新、挿入、または削除ステートメントが予期しない行数(0)に影響を与えました。
私はSQLを記録した後、私は今の理由を知っています。 SQLだからこの
'update [dbo].[BatchData]
set [BatchData_Title] = @0
where (([BatchData_Id] = @1) and ([BatchData_CreatedDateTime] = @2))
select [BatchData_Rowversion]
from [dbo].[BatchData]BatchUploadData
where @@ROWCOUNT > 0 and [BatchData_Id] = @1 and [BatchData_CreatedDateTime] = @2',
N'@0 varchar(30),@1 tinyint,@2 datetime2(7)',
@0='EF6TEST',@1=1,@2='2017-09-16 11:29:35.3720000'
のように見えます
、その理由は、SQLでBatchData_CreatedDateTime
パラメータは精度が7であり、それは@2='2017-09-16 11:29:35.372'
する必要があり、@2='2017-09-16 11:29:35.3720000'
です。
ここに私の質問です、それを修正するには?
あなたのSQLサーバはどのデータ型を使用していますか? DateTimeまたはDateTime2? – Alander
DateTimeを使用するSQLサーバー –
SQL ServerでのDateTimeの精度はミリ秒(.fff)です。したがって、SQLサーバー側の.372は正しいです ただし、.NET DateTimeは7の精度を返します。データ型をDateTime2に更新できますか? – Alander