EF Fluent API - 我可以代表这些表吗?

时间:2015-06-15 17:35:11

标签: c# entity-framework ef-fluent-api

前言:我无法控制数据库架构。在这个问题中,我重新命名了字段/表格,以便更容易理解。我在我的例子中包含了[Key]和[ForeignKey()]注释,但我真的试图用流畅的api来定义它。

public partial class Person
{
    [Key]
    public int p_id{ get; set; }
    [Key]
    public int p_id2{ get; set; }

    public int? p_document_id { get; set; }

    [ForeignKey("p_document_id")
    public virtual ICollection<Document> Documents { get; set; }
}

public partial class Document
{
    [Key]
    public int d_id { get; set; }
    [Key]
    public int d_id2 { get; set; }

    //implied?
    //public virtual Person Person {get; set;}
}

一个人可能有0或多个文件。文件必须属于一个人。每个表都有一个复合键。

以下是数据库外观的示例:

p_id     p_id2   p_document_id
1        a       NULL
1        b       NULL
2        a       555
2        b       666

d_id     d_id2   
555      x
555      y
666      x

在此示例中,人1没有文档,但人2有3个文档。 Person.p_document_id = Document.d_id,d_id2仅用于提供复合唯一ID。

无论如何用流利的api建立这种关系与我一起工作,我无法添加任何新的列。

0 个答案:

没有答案