我有一个问题,我想制作一个学习asp.net mvc的项目。 我想有一个电子商务网站,所以我想出了这个模型。
class Product
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public string Description { get; set; }
public bool Available { get; set; }
}
但是当我添加一个项目时,我也希望选择下载不同的物品,如衣服,汽车等。最好的方法是什么?
我想我可以像这样做一个枚举:
public enum ProducType
{
Car,
Clothes
}
我看到枚举的唯一不足之处是我必须对值进行硬编码,如果我想在另一天添加另一个值而不是我需要更改代码的话。
我想我可以创建一个名为ProductType的新模型,它只接受一个名为Type的ID和一个String并建立一个关系。像这样:
class Product
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public string Description { get; set; }
public bool Available { get; set; }
[ForeignKey("Product")]
public int ProductId { get; set; }
public virtual ProductType Product { get; set; }
}
class ProductType
{
public int Id { get; set; }
public string Type { get; set; }
}
这里最好的方法是什么?
答案 0 :(得分:2)
您最好创建产品和类别模型类,并为它们添加关系。如果您在不久的将来添加新类别,则无法进行新部署。
答案 1 :(得分:1)
您可以使用列表而不是enum,而只需使用list.Add方法
答案 2 :(得分:1)
你的第二个解决方案很好,
class Type
{
public int Id { get; set; }
public string Type { get; set; }
}
正如您所说,您可以拥有产品类和类型类,它们之间存在关系。如果您需要更改下拉值,那么您可以更新它们在数据库中,您无需更改代码。
答案 3 :(得分:1)
您可能会添加/更新/删除很多类别,因此最佳选择是两个模型类并将您的类别存储在数据库中。通过这种方式,您可以轻松更改数据而无需更改代码。
答案 4 :(得分:0)
" 我有一个问题,我想创建一个项目来学习asp.net mvc 。我想有一个电子商务网站,所以我想出了这个模型。"
我觉得有趣的是你尝试学习ASP.NET MVC5已经实现了如此复杂的目标,例如电子商务。
但是,我的提示是;
首先学习概念;
因此,请以简单的方式学习如何使用它们;
然后尝试复杂的事情;
这是一个很棒的官方入门教程:
http://www.asp.net/mvc/overview/getting-started/introduction/getting-started