sql >> データベース >  >> RDS >> Sqlserver

エンティティフレームワークにID列を挿入させるにはどうすればよいですか?

    EF 6 メソッド、msdnの記事を使用:

    using (var dataContext = new DataModelContainer())
    using (var transaction = dataContext.Database.BeginTransaction())
    {
        var user = new User()
        {
            ID = id,
            Name = "John"
        };
    
        dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] ON");
    
        dataContext.User.Add(user);
        dataContext.SaveChanges();
    
        dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] OFF");
    
        transaction.Commit();
    }
    

    更新: 「IDENTITY_INSERTがONに設定されている場合、またはレプリケーションユーザーがNOT FOR REPLICATION ID列に挿入している場合は、テーブル'TableName'のID列に明示的な値を指定する必要があります」というエラーを回避するには、StoreGeneratedPattern<の値を変更する必要があります。 / strong> IdentityからNoneまでのID列のプロパティ モデルデザイナーで。

    StoreGeneratedPatternをNoneに変更すると、IDが指定されていないオブジェクトの挿入に失敗し(通常の方法)、「IDENTITY_INSERTがOFFに設定されている場合、テーブル'TableName'にID列の明示的な値を挿入できません」というエラーが発生します。



    1. クエリ以外で使用するとエラーが発生する

    2. CloudFirestoreデータベースへのデータの追加

    3. NULL列に一意のインデックスを作成するにはどうすればよいですか?

    4. 列を変更してデフォルト値を変更するにはどうすればよいですか?