2011-12-13 7 views
3

HasActionalコードファーストAPIのメソッドに対応するDataAnnotation属性がありますか?HasOptional対応のDataAnnotation属性

流暢なAPIを使用する代わりに、属性を使用してプロパティをマークしたいとします。

これは私の現在のモデル& OnModelCreatingコードです:

public class Employee 
{ 
    #region Properties 

    public int EmployeeID { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    public int? ManagerID { get; set; } 
    public Employee Manager { get; set; } 

    #endregion 
} 

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
    modelBuilder.Entity<Employee>(). 
     HasOptional(e => e.Manager). 
     WithMany(). 
     HasForeignKey(m => m.ManagerID); 
    } 

おかげ

答えて

5

はありません、そのような属性は、([Required]属性とは対照的に)存在しません。私は理由は(FKプロパティがNULL可能であるため)規則は関係がオプションであることも、外部キーを検出しなければならないので

  • はあなたのモデルがまったくマッピングを必要としないので、それは
  • 必要がないことだと思います
  • モデルに外部キーのプロパティを持たない場合は、公開されていない外部キーのないナビゲーション参照はデフォルトで常にオプションであるため、関連性は常にオプションです。ここでは、必要な関係を作るために属性[Required]が必要です。
  • 外部キープロパティがNULL可能でない場合、オプションの関係は許可されません。

したがって、そのような属性は必要ではないようです(クラスの定義ではオプションの関係を明示的に指定するのではなく、プロパティの上の注釈でも同じことが行われない限り)。

+0

あなたの説明によれば、指定されたAPIの一部は重複しています。 –

+0

@Yair:はい、そうです。 – Slauma

関連する問題