首先是多对多关系中的复合主键和代码中的列

时间:2012-01-23 16:23:08

标签: many-to-many ef-code-first data-annotations fluent-interface

我想这可以在某处覆盖,但我无法找到。猜猜我没有使用正确的搜索字词。

基本上我有一个我定义为POCO的多对多表。如果你愿意的话,你也可以将它看作一个有两对一关系的表。

一端有一个用户表和另一端的分区表。但是,每个用户分组组合可以有多个关系,每年一个。因此在关联表中将有一个年份的int列,主键将是UserId fk,DivisionId fk和Year的复合。

我不确定如何在EF 4.1 Code First中执行此操作。我希望有一种DataAnnotation方式和一种FluentApi方式。

如果你能指出我的教程,我真的很高兴。

用户:

public class User
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }

    //some other properties

    public virtual ICollection<DivisionService> Services { get; set; }
}

司:

public class Division
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int DivisionId { get; set; }

    //some other properties

    public virtual ICollection<DivisionService> Services { get; set; }
}

加入/主表:

public class DivisionService
{
    public int Year { get; set; }  //this and the two foreign keys should be composite Primary Key

    //some other properties

    public virtual User User { get; set; }
    public virtual Division Division { get; set; }
}

0 个答案:

没有答案