2012-02-15 7 views
1

EF4.1コードで流暢なAPIを最初に実行するにはどうすればよいですか?コード最初の流暢なAPI、どうすればいいですか?

public class employee 
    { 
     public int employeeId{ get; set; } 
     public string name{ get; set; } 
    } 

    public class employeeDeparment 
    { 
     public int Id{ get; set; } 
     public int employeeId{ get; set; } 
     public int bossId{ get; set; } 
     public int DeparmentId{ get; set; }  

     public virtual employee employees { get; set; } 
     public virtual employee boss { get; set; } 
     public virtual deparment deparments{ get; set; } 
    } 

    public class deparment 
    { 
     public int deparmetId{ get; set; } 
     public string Name { get; set; } 
    } 

はこれを試みるが、いけない仕事

modelBuilder.Entity<deparment>() 
        .HasOptional(c => c.boss) 
        .WithMany() 
        .HasForeignKey(c => c.bossId); 

それはデータベース

編集でどのように見えるか:正しい データベース http://subir-imagenes.es/?v=bdcorrect.png

+0

(それがEFによって作成されます)真ん中のテーブルを定義していけないということでしょう。これら2つのエンティティ間の関係を記述できますか? – Eranga

+0

これを達成するためのiam traingが悪い例(急いでいる)ですが、従業員が多くの分野で働きたいと思っていることを想像してください。 これは正しいです http:///subir-imagenes.es/?v=bdcorrect.png –

+0

私は今編集しています –

答えて

0
modelBuilder.Entity<EmployeeDeparment>().HasMany(x => x.Employees) 
    .WithRequired(x => x.EmployeeDepartment).HasForeignKey(x => x.EmployeeId); 

modelBuilder.Entity<EmployeeDeparment>().HasMany(x => x.Bosses) 
    .WithRequired(x => x.EmployeeDepartment).HasForeignKey(x => x.bossId); 

他の解決策は、あなたが `Deparment`側に2つのFKSがあるので、あなたのデータベースモデルが間違っているように見えます

public class employee 
{ 
    public int employeeId{ get; set; } 
    public string name{ get; set; } 
    public ICollection<department> departments { get;set; } 
} 

public class deparment 
{ 
    public int deparmetId{ get; set; } 
    public string Name { get; set; } 
    public ICollection<employee> employees { get;set; } 
    public ICollection<employee> bosses { get;set; } 
} 
関連する問題