有一个 ProductSize 尺寸模型,其中有属性:
public int Id {get; set;}
public int S {get; set;}
public int M {get; set;}
public int L {get; set;}
public int ProductId {get;set;}
public Product Product {get; set;}
大小存储一个 Int 值,该值指示存在一种或另一种大小的数量。我想创建一个仅显示值大于零的维度的下拉列表。好吧,或者,作为一种选择,将有所有值,但根据相同的逻辑启用\禁用。但是为此我仍然需要获取非零值的列的名称。这样做的正确方法是什么?
一开始,我存储bool而不是int,写了这个可怕的方法(但最后我什至没有尝试,因为我决定从头重做整个数据库)
var product = db.Products.FirstOrDefault(p => p.Id == productId);
var availableSizes = from s in db.ProductSizes where (s.Id == productId) select s;
List<string> Sizes = new List<string>();
foreach (var s in availableSizes)
{
if(s.S == true)
{
Sizes.Add("S");
}
if(s.M == true)
{
Sizes.Add("M");
}
if (s.L == true)
{
Sizes.Add("L");
}
if (s.Xl == true)
{
Sizes.Add("XL");
}
if (s.Xxl == true)
{
Sizes.Add("XXL");
}
}
return Sizes;
有两种选择。一个完整的就是为商品、库存余额、已售商品和废弃商品创建一个良好的结构。
但原则上,如果您不打算朝这个方向发展,那么请寻找更简单的模型。
您必须具有以下维度:
并分别他们的存在:
在其中分行填写一种或另一种尺寸的商品数量。查询会简单很多,有两种选择:要么你有一个产品+尺寸表中只能有一行,要么有几个,你需要先总结一下。
我相信你会很快找到很多关于如何进入成熟仓库系统的想法:)