实体框架中第一个代码与JUNCTION TABLE的多对多关系

时间:2012-12-28 17:55:37

标签: c# asp.net entity-framework asp.net-mvc-4 entity-framework-4.3

这是我第一次使用ASP.NET MVC4和ENTITY FRAMEWORK FIRST CODE。

我有三张桌子。其中只有一个是作为名为TestObjectivesLink的JUCTION TABLE工作。问题是当我使用命令Update-Database -Verbose时,它在Objectives中创建了一个列引用。

我有些疑惑,我无法创建JUCTION TABLE,因为表没有PK,我该怎么做才能检索数据。例如,如何从测试中检索目标?

[Table("Objective")]
public class Objective
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int ObjectiveId { get; set; }
}

[Table("Test")]
public class Test
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int TestId { get; set; }
}


[Table("TestObjectiveLink")]
public class TestObjectiveLink
{
    public Test Test { get; set; }
    public Objective Objective { get; set; }
    //public ICollection<Objective> Objectives { get; set; }
}

public class ContosoDb : DbContext
{
    public ContosoDb() : base("name=DefaultConnection") {}

    public DbSet<Test> Tests { get; set; }
    public DbSet<Objective> Objectives { get; set; }
    public DbSet<TestObjectiveLink> TestObjectiveLink { get; set; }
}

这是输入命令Update-Database -Verbose

后我的表格的结果

enter image description here

我如何向实体表明我正在尝试做什么?

0 个答案:

没有答案