在数据库中为产品添加属性的最佳方法(使用 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; }
}

在数据库中为产品添加属性的最佳方法(使用 EntityFramework、c#)

好吧,

你需要多对多的关系,因为一种饮料可以具有多种属性,并且每种属性都可以赋予不同的饮料。如此多对多的关系与饮料中属性数量的列有关。您可以做的是在数据库中创建一个存储过程,然后使用 c# 连接到它并通过为其提供一些参数来执行它。因为您可能不知道这种饮料中会有多少产品,所以您可以将它们添加为一个大的 nvarchar,然后与数据库中的某些功能分开。或者,您可以添加许多默认情况下为 null 的参数,然后仅采用非 null 的参数。