实体Framewok Core 2.1中的多级模型类

时间:2018-06-22 12:34:21

标签: c# asp.net database entity-framework-core

我的数据库实体项目大约有30列,我想创建一个清晰的EF Core模型,其中许多模型都分为几类。

例如,覆盖实体为Sensors,它具有两个元素(Int ID, ElectricalData electricalData)ElectricalData是一个单独的类,它具有接下来的3个单独的类以及两个bool和{{ 1}}个对象。

string过程中以这种方式构造的模型返回的反馈是,子实体没有主键,但是它们不应该包含PK,因为只有Add-Migration类应该具有主键键。

如何解决此问题?这个想法正确吗?

以下代码:

Sensors

1 个答案:

答案 0 :(得分:2)

您要问的内容称为Complex Types,EF核心术语为Owned Entity Types。默认情况下,它们与所有者共享同一张表,并且仅用于逻辑上分离(分组)相关属性-正是您要描述的目标。

在EF Core 2.1中将类标识为拥有类型的最简单方法是将其标记为OwnedAttribute

[Owned]
public class ElectricalDataModel
{
    // Properties..
}

[Owned]
public class TensionModel
{
    // Properties..
}

//.......................................... and so on

当然可以通过OwnsOne流利的API实现相同的功能,该API还允许您为每个所有者 所拥有实体配置列名和其他属性。