29

Saleという名前のクラスがあります

public class Sale
{
    public int Id { get; set; }
    public string TrNo { get; set; }
    public DateTime Date { get; set; }
    public int CustomerID { get; set; }

    public ObservableCollection<SaleDetail> SaleDetails { get; set; }
}

データベースでは、 を列Idとして、 を列として使用します。Auto IncrementTrNoPrimary Key

最初にEF5コードを使用してこれを行う方法を教えてください。

ありがとう。

4

4 に答える 4

46

データ注釈を使用してこれを行うこともできます。

public class Sale
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Key]
    public string TrNo { get; set; }

    public DateTime Date { get; set; }
    public int CustomerID { get; set; }

    public ObservableCollection<SaleDetail> SaleDetails { get; set; }
}
于 2013-01-30T20:24:22.897 に答える
17

Fluent APIを使用してこれを行うことができると思います

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Sale>().Property(a => a.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    modelBuilder.Entity<Sale>().Property(a => a.TrNo).HasKey(b => b.TrNo);
}
于 2013-01-30T20:21:14.287 に答える
6

どうやら@ IronMan84の答えは正しいようです。しかし、それは私にはうまくいきませんでした。別の条件を適用するために少し修正しました。そしてそれはうまくいきました。私は他に何もしませんでした。

これが私の解決策です。

public class Sale
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Key, Column(TypeName = "varchar"), MaxLength(50)]
    public string TrNo { get; set; }

    public DateTime Date { get; set; }
    public int CustomerID { get; set; }

    public ObservableCollection<SaleDetail> SaleDetails { get; set; }
}

残念ながら、@ IronMan84の答えはうまくいかなかったため、正しいものにすることはできません。

于 2016-11-11T10:37:21.117 に答える