0

EnrollTraineeという名前のテーブルがあります。EnrollTraineeモデルクラスに次の列があります。

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

public int TraineeID { get; set; }      

public int TrainerID { ![enter image description here][1]get; set; }

public virtual CreateUsers user_userid { get; set; }

public virtual CreateUsers user_id { get; set; }

public DateTime dt { get; set; }

これらの2つの列TraineeIDTrainerIDは、テーブルCreateUserのUser_id列にマップされます。

これがCreateUserモデルクラスです

    public class CreateUsers
    {
    [Key]
      public int User_Userid { get; set; }

    [Required]
    [Display(Name="Enter User Name")]
    public string User_name { get; set; }

    [Required]
    [Remote("IsDomainIDExist", "Account", ErrorMessage = "Domain ID Already Exist")]
    [Display(Name = "Enter Domain ID")]
    public string User_username { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Enter Password")]
    public string User_password { get; set; }

    [Required]
    [Display(Name = "Enter Department")]
    public string User_department { get; set; }

    [Required]
    [Remote("IsEmployeeIDExist", "Account", ErrorMessage = "Domain ID Already Exist")]
    [Display(Name = "Enter Employee ID")]
    public string User_employeeid { get; set; }

    [Required]
    [Display(Name="Select Role Type")]
    public int RoleID { get; set; }

    [Display(Name="Enable?")]
    public bool User_Enable { get; set; }

    [DataType(DataType.DateTime)]
    [Display(Name = "Date Time")]
    public DateTime dt { get; set; }

    public virtual RoleModel Role { get; set; }

 }

EF CFで同じ主キーを持つ2つの外部キーをマップするにはどうすればよいですか?

4

2 に答える 2

2

このようなもの:

public class EnrollTrainee
{
    [Key]
    public int id { get; set; }

    public int TraineeID { get; set; }

    public virtual CreateUser Trainee { get; set; }

    public int TrainerID { get; set; }

    public virtual CreateUser Trainer { get; set; }

    public DateTime dt { get; set; }
}

internal class EnrollTraineeConfiguration:EntityTypeConfiguration<EnrollTrainee>
{
    public EnrollTraineeConfiguration()
    {
        ToTable("EnrollTrainee");
        Property(c => c.dt).HasColumnName("dt");
        Property(c => c.TraineeID).HasColumnName("TraineeID");
        Property(c => c.TrainerID).HasColumnName("TrainerID");
        HasKey(c => c.id);
        HasRequired(c => c.Trainee).WithMany().HasForeignKey(c=>c.TraineeId);
        HasRequired(c => c.Trainer).WithMany().HasForeignKey(c => c.TrainerId);
    }
}
public class Context: DbContext
{
     protected override void OnModelCreating(DbModelBuilder modelBuilder)
     {
          modelBuilder.Configurations.Add(new EnrollTraineeConfiguration());
          ......
     }
     ....
}
于 2012-09-04T10:46:07.133 に答える
-1

MVC3 または 4 を使用している場合は、Entity Framework マッピングを使用して同じことを行うことができます。これにより、必要なクラスが生成されます。同じことを行うために使用できるモデル ブラウザ。

あなたがしなければならないこと:

テーブルを作成します テーブルに PK および FK 制約を作成します プロジェクトのソリューション エクスプローラーでモデル フォルダーを右クリックし、[新しい項目の追加] を選択し、[データ] カテゴリから [ADO.Net EF 4.x/5.x] を選択します [OK] をクリックしますウィザードを開き、必要なパラメーターを指定します。途中で、要求するテーブルを選択します。終了すると、.Edmx のコンテキスト ファイルに .Edmx ファイルが作成されます。

于 2012-09-04T11:26:55.170 に答える