gpt4 book ai didi

c# - 如何在 C# 中为电子商务在 mongodb 上实现查询模式

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:52 24 4
gpt4 key购买 nike

我想为电子商务系统制作产品目录服务。我有“衣服”产品,它们在“尺寸”和“颜色”上有变化,例如:

    "Title": "Nike Hoodie Tiger",
"Price": 69.9,
"Vars": [
{
"Sku": "NH01",
"Attrs": [{"Size": "XL"}, {"Color": "white"}],
"Quantity" : 3
},
{
"Sku": "NH02",
"Attrs": [{"Size": "L"}, {"Color": "white"}],
"Quantity" : 0
},
{
"Sku": "NH03",
"Attrs": [{"Size": "M"}, {"Color": "white"}],
"Quantity" : 1
}
]

然后我有“电视”产品,这些产品的分辨率有所不同:

    "Title": "Sony Bravia 40",
"Price": 339.9,
"Vars": [
{
"Sku": "TV01",
"Attrs": [{"Resolution": "FullHD"}],
"Quantity" : 3
},
{
"Sku": "TV01",
"Attrs": [{"Resolution": "4K"}],
"Quantity" : 0
}
]

服装产品的模型在 C# 中看起来像这样:

    public class Product
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
public List<ProductVariations> Vars { get; set; }
}

[BsonIgnoreExtraElements]
public class ProductVariations
{
public string Sku { get; set; }
public List<ProductAttributes> Attrs { get; set; }
public int Quantity { get; set; }
}

public class ProductAttributes
{
public string Size { get; set; }
public string Color { get; set; }
}

那么我应该使用什么策略来支持其他产品属性,例如电视上的属性?如果将来我想添加其他具有完全不同属性的产品怎么办?我是否必须重写我的代码才能支持这些属性?

最佳答案

非常好的问题。由于您不知道类型是 future 的实现等,因此您只能使用细节/值实现。

您的列表可以包含这样的数据结构,而不是属性:

public class ProductDetail {
public DetailType Type;
public string Value;
}

现在你的attrs可以变成这样

`[{ Type: 1, Value: "4k"}]`

DetailType可以是枚举以节省存储空间。

如果 detailType 枚举有问题,您可以执行以下操作:

public class ProductDetail {
public string Type;
public string Value;
}

`[{ Type: "Resolution", Value: "4k"}]`

关于c# - 如何在 C# 中为电子商务在 mongodb 上实现查询模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59243674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com