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

本文关键字:属性 类型 框架 复杂 实体 | 更新日期: 2023-09-27 18:06:35

是否有一种方法在实体框架中使用一些复杂类型作为实体和映射到现有数据库的关键?

假设我有这样一个数据库:

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

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

如果你只有一个属性,有一个单独的PersonId类的意义是什么?在我看来,这是不好的做法。

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

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