实体框架复杂类型属性作为键

时间:2016-09-12 14:21:40

标签: c# entity-framework entity-framework-6

Entity Framework中是否有一种方法可以使用某种复杂类型作为实体的键并映射到现有数据库?

假设我有这样的数据库:

create table people ( id int, name nvarchar(128) )

我想将以下C#类结构映射到此表:

    class PersonId
    {
        public int Id { get; set; }
    }

    class Person
    {
        public PersonId Id { get; set; }
        public string Name { get; set; }
    }

我怎么能这样做?

-Dmytro

1 个答案:

答案 0 :(得分:0)

如果您只拥有财产,那么拥有单独的PersonId课程的重点是什么?这对我来说似乎是不好的做法。

也许您只需要一个复合键。要在EF中使用,您可以像这样声明您的类:

[Key, Column(Order = 0)]
public int column1 { get; set; }

[Key, Column(Order = 1)]
public int column2 { get; set; }