使用外键创建许多与MVC - EF的任何关系

时间:2016-04-07 18:37:19

标签: c# entity-framework model-view-controller mapping fluent

我无法使用以下方案:

我的表格:

任务( Id ,部分,其他,信息,VorID)

文档( DocID ,部分,其他,信息)

TaskDocument( DocID VorID

因此,任务可以包含更多文档,但文档只能有一个任务。

我的模特:

public class Task 
{
    [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Id { get; set; }
    public int ProjecId { get; set; }
    public string PositionType { get; set; }
    public string Editor { get; set;
    public int? VorID { get; set;}
    [ForeignKey("VorID")]
    public virtual List<Models.Document> Documents { get; set; }
}
public class Document
{
        public int DocID { get; set; }
        public Int16 Mandant { get; set; }
        public int DocNumber { get; set; }
}

映射:

public TaskMapping()
{
        this.HasKey(t => t.Id);

        this.Property(t => t.Id).HasColumnName("Id");
        this.Property(t => t.ProjecId).HasColumnName("ProjektId");
        this.Property(t => t.PositionType).HasColumnName("Positiontyp");
        this.Property(t => t.VorID).HasColumnName("VorID");

        this.HasMany<Models.Document>(t=>t.Documents).WithMany().Map(cs =>
                    {
                        cs.MapLeftKey("VorID");
                        cs.MapRightKey("DocId");
                        cs.ToTable("TaskDocuments");
                    });

        this.ToTable("Task", "dbo");
}
public DocumentMapping()
{
        this.HasKey(t => t.DocID);

        this.Property(t => t.DocID).HasColumnName("DocID");
        this.Property(t => t.DocNumber).HasColumnName("SomeInfos");
        this.ToTable("Documents", "dbo");
    }

现在我获得了Id 123和VorID 987的任务所有文档,其中任务ID为外键,而不是VorID为FK?似乎忽略了数据注释[Foreignkey(“VorID”)],因为如果我写[Foreignkey(“DAMN”)]它也可以按照描述工作吗?!

也许有人可以帮助我?

0 个答案:

没有答案