1

Code First EF に関するベスト プラクティスについて質問があります。User.cs と Team.cs の 2 つのクラスがあります。

public class Team()
{
[Key]
public int TeamId{get;set;}
public string TeamName {get;set;}
public virtual User TeamLead {get;set;}
public virtual User Manager {get;set;}
}

  public class User
{
   public int UserId {get;set;}
   public string FullName {get;set;}
}

各ユーザーには 1 つのチームがあります。チームには TeamLead と Manager が必要です。Code First EF で双方向の関係を作成するにはどうすればよいですか? いくつかの例を読みましたが、それを行う最善の方法について混乱しています。

ありがとう。

4

2 に答える 2

1

知る必要がある人のために。これが私がそれを解決した方法です。

リレーションシップの作成には Fluent Api メソッドを使用しました。

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<Team>()
           .HasMany(m => m.Users).WithRequired(m => m.Team);
    }

チームクラス:

  [Key]
    public int TeamId { get; set; }

    public string TeamName { get; set; }

    public virtual User TeamLead { get; set; }

    public virtual User Manager { get; set; }

    public List<User> Users { get; set; }

ユーザークラス:

 [Key]
    public int UserId { get; set; }

    [Display(Name = "User Name")]
    [Required(ErrorMessage = "User Name is required")]
    public string UserName { get; set; }

    [Display(Name = "Full Name")]
    public string FullName { get; set; }

    [Display(Name = "Email")]
    [Required(ErrorMessage = "Email is required")]
    public string Email { get; set; }

    public virtual Team Team { get; set; }

これで問題は解決しました。

于 2013-08-20T13:28:10.400 に答える