【发布时间】:2017-11-21 16:27:36
【问题描述】:
在应用程序中,我有两个模型类类别和产品。如下所示
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
}
public class Category
{
public Category()
{
Products = new List<Product>();
}
public int Id { get; set; }
public string Name { get; set; }
public List<Product> Products { get; set; }
}
我将数据添加到如下类别和产品列表中。
List<Category> data = new List<Category>();
data.Add(new Category { Id = 1, Name = "Plastic"});
data.Add(new Category { Id = 2, Name = "Metal"});
data.Add(new Category { Id = 3, Name = "Paper" });
foreach (var item in data)
{
switch (item.Id)
{
case 1:
item.Products.Add(new Product { Id = 1, Name = "Doll", CategoryId = item.Id });
item.Products.Add(new Product { Id = 2, Name = "Pen", CategoryId = item.Id });
break;
case 2:
item.Products.Add(new Product { Id = 3, Name = "Nail", CategoryId = item.Id });
item.Products.Add(new Product { Id = 4, Name = "Key", CategoryId = item.Id });
break;
case 3:
item.Products.Add(new Product { Id = 5, Name = "Book", CategoryId = item.Id });
break;
default:
item.Products.Add(new Product { Id = 0, Name = null });
break;
}
}
还有其他方法可以用最少的代码来编写吗?如果有人为此提出其他解决方案,我将不胜感激。
【问题讨论】:
-
为什么在产品中需要类别 ID?您是否将此图存储在 Entity Framework 中?
-
这不是处理任何数据库连接。这只是一个要求
-
是案例 3:Id = 2 未命中类型吗?
-
抱歉,已更正
-
好的,刚刚注意到在案例 1 中:您的 Id = 1 或 2,因此仅使用 Id = item.Id 可能行不通
标签: c# .net list linq collections