EF移行によってデータベースをバージョン管理しようとすると、「文字列から日付や時刻を変換するときに変換に失敗しました」というエラーが発生します。問題は、EFが新しい移行スクリプトエントリに対して生成した日付文字列( '2012-03-21T18:23:13.525Z')が、私のバージョンのMS Sql Server(Microsoft SQL Server Express Edition with Advanced Services(64-少し))。これはバグですか?回避策はありますか?
CREATE TABLE [__MigrationHistory] (
[MigrationId] [nvarchar](255) NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[Model] [varbinary](max) NOT NULL,
[ProductVersion] [nvarchar](32) NOT NULL,
CONSTRAINT [PK___MigrationHistory] PRIMARY KEY ([MigrationId])
)
BEGIN TRY
EXEC sp_MS_marksystemobject '__MigrationHistory'
END TRY
BEGIN CATCH
END CATCH
INSERT INTO [__MigrationHistory] ([MigrationId], [CreatedOn], [Model], [ProductVersion])
VALUES ('201203210144184_init', '2012-03-21T18:23:13.525Z', 0x33, '4.3.1');
編集
どうでも。これはEntityFrameworkとは何の関係もありません。SQLServerデータベースがSQLServer2000と下位互換性があるように構成されている場合、その日付形式は受け入れられません。EFに日付文字列を別の形式で出力させる(またはSQL Serverを2000と逆互換にし、EF日付文字列を理解する)ことができない限り、データベースでEF移行を使用することはできません。 -(。互換性レベルがSQLServer2000のデータベースでEFを使用する方法を誰かが考案したかどうかを教えてください。