我的数据库实体项目大约有30列,我想创建一个清晰的EF Core模型,其中许多模型都分为几类。
例如,覆盖实体为Sensors
,它具有两个元素(Int ID, ElectricalData electricalData)
,ElectricalData
是一个单独的类,它具有接下来的3个单独的类以及两个bool
和{{ 1}}个对象。
在string
过程中以这种方式构造的模型返回的反馈是,子实体没有主键,但是它们不应该包含PK,因为只有Add-Migration
类应该具有主键键。
如何解决此问题?这个想法正确吗?
以下代码:
Sensors
答案 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还允许您为每个所有者 所拥有实体配置列名和其他属性。