-1

Id と DocumentId プロパティを持つ Sample という名前のモデルを作成しました。この中で Id プロパティの主キーについては触れていませんが、エンティティ フレームワークでテーブルとして Sample を作成したときに主キーを形成します。 Id の主キーを削除します。私は何をしなければなりませんか。私を助けてください。私はmvc4に非常に慣れていません。

public class Sample
{
[Required,DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
[Required]
public int DocumentId { get; set; }
}

public override void Up()
{
CreateTable(
"dbo.Samples",
c => new
{
Id = c.Int(nullable: false, identity: false),
DocumentId = c.Int(nullable: false),
})
.PrimaryKey(t => t.Id);

}
4

4 に答える 4

0

エンティティ ダイアグラム (.edmx) ファイルを開き、その特定のテーブルのどのプロパティが主キーであるかを見つけます。それを右クリックして、「プロパティ」を選択します。プロパティ ウィンドウで、StoreGeneratedPattern - Identity? と表示されている場所を確認します。これを none に変更して、ダイアグラムを保存します。.cs モデル ファイルを自動的に再生成します。

于 2013-08-09T13:31:07.210 に答える
0

Fluent API は、Entity フレームワークのデータ注釈を抑制します。Primary の Data Annotation は [Key] で、ID はデフォルトで ID を持つ Primary key です。そのシナリオでは、(存在する場合) ID i:e;[KEY] のデータ注釈を削除し、コンテキスト クラスで Fluent API を使用します。以下の例では、Fluent により、主キーは「CustomerName」です。例:

public class Customer
    {
        public int CustomerName { get; set; }

        public int ID { get; set; }

        [Required]
        public string ProductID { get; set; }

    }

コンテキスト クラス:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
           modelBuilder.Entity<Customer>().HasKey(s => s.CustomerName);   
        }
于 2018-05-12T17:39:02.433 に答える