3

私は次のようなCodeFirstEFクラスを持っています:

public class Event
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    /* snip */
}

IDプロパティがnullまたは0の場合、データベースはそのID値を生成しますが、この値を明示的に設定newEvent.ID=10000000すると、ID列として使用され、現在は次のようになります。次に利用可能なID。

4

1 に答える 1

1

始めに、私はこれに対する良い解決策を知りません。何をしようとしているのかを再考するか、なぜこれを行う必要があるのか​​をさらに説明することをお勧めします。おそらくもっと良い解決策があります。あなたが欲しいものについて私が知っている唯一の解決策は醜いです、そして私はそれを本当にお勧めすることはできません。

  1. ID(自動インクリメント)フィールドは使用できません。これをコラムに載せると、あなたにできることは何もありません。データベースはエラーをスローするか、指定した値を無視します。
  2. 自動インクリメントは自分で処理する必要があります。これを行うには多くの方法があります(データベースに現在の値を保存する、max()クエリを実行するなど)。
  3. SaveChanges()をオーバーライドしたくなるかもしれません。これはそれについてのSOPOSTです。私もあなたがこれをすることを本当にお勧めしません。

おそらく誰かがあなたのために本当に素晴らしい解決策を持って来るでしょう。申し訳ありませんが、これはあなたにとってより多くの答えではなかったことを私は知っています。幸運を。

于 2013-03-09T21:20:25.587 に答える