【发布时间】:2020-06-30 07:06:00
【问题描述】:
我将 C# 和 .NET Core 与 MySql 和 Entity Framework 一起使用。
我有一个带有一组属性的对象。像这样:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public IEnumerable<Property> Properties { get; set; }
}
public class Property
{
public int Id { get; set; }
public string Name { get; set; }
public object Value { get; set; }
}
在这种情况下,在数据库中,我应该有表 Products、Properties(其中描述了属性,如名称和一些附加信息)和链接表 ProductProperties,存储产品 ID、属性 ID 和值.
但我不知道如何使用代码优先的方法来做到这一点。
如何先用代码实现它?
再创建一个实体 PropertyValue 并将其存储在 Product 下是否是一种好方法?
【问题讨论】:
-
您的问题到底是什么?您无法创建表或关系或获取查询?
-
看看 EAV。这就是您要查找的(反)模式的名称。
-
你想要一个带有额外属性的多对多表吗?
-
@Vince 是的,没错。
标签: c# entity-framework .net-core ef-code-first code-first