在数据库中为产品添加属性的最佳方法(使用 EntityFramework、c#)
本文关键字:使用 方法 EntityFramework 最佳 数据库 属性 添加 | 更新日期: 2023-09-27 18:31:35
例如,有一杯餐桌饮料。饮料具有不同的价值属性(蛋白质:6克,糖:5克......
不同饮品的属性可能有所不同。
在数据库中实现此示例的最佳方法是什么?
一个实现示例:
public class Drink : BaseEntity
{
public string Name { get; set; }
public virtual ICollection<DrinkProperty> DrinkProperties{ get; set; }
}
public class DrinkProperty : BaseEntity
{
public virtual Drink Drink { get; set; }
public virtual Property Property { get; set; }
public string Value { get; set; }
}
public class Property : BaseEntity
{
public string Name { get; set; }
public virtual Measure Measure { get; set; }
public virtual ICollection<DrinkProperty> DrinkProperties { get; set; }
}
好吧,
你需要多对多的关系,因为一种饮料可以具有多种属性,并且每种属性都可以赋予不同的饮料。如此多对多的关系与饮料中属性数量的列有关。您可以做的是在数据库中创建一个存储过程,然后使用 c# 连接到它并通过为其提供一些参数来执行它。因为您可能不知道这种饮料中会有多少产品,所以您可以将它们添加为一个大的 nvarchar,然后与数据库中的某些功能分开。或者,您可以添加许多默认情况下为 null 的参数,然后仅采用非 null 的参数。