私はEFコードファーストを使用してASP.NET MVC4アプリを開発し、移行機能も使用しています。特定のエンティティがあり、何らかの理由で明示的な ID 値を設定したい。これどうやってするの?次のような属性でidプロパティをマークしようとしました:
public class NewsSource
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public string Title { get; set; }
public string WebSiteUrl { get; set; }
}
次に、対応する移行を追加し、データベースを削除して、次のように Seed() メソッドを使用してデータベースを更新しようとします。
context.NewsSources.AddOrUpdate(x => x.Title,
new NewsSource {Id = 654, Title = "ABC", WebSiteUrl = @"http://www.abc.com/"},
new NewsSource {Id = 22, Title = "XYZ", WebSiteUrl = @"http://XYZ.ru/"});
そして、次のエラーが発生しました:「IDENTITY_INSERT が OFF に設定されている場合、テーブル 'NewsSources' の ID 列に明示的な値を挿入できません」。EF と移行を使用して identity_insert を ON に設定するにはどうすればよいですか。多くのトピックから理解したように、それは不可能であり、直接 SQL コマンドを使用する必要があります。私が間違っている?