【发布时间】:2014-06-06 07:34:07
【问题描述】:
一般来说,我正在寻找一种解决方案来从数据库中提取数据以填充我的视图模型列表以用于许多表。例如,我需要你的帮助来处理 2 张桌子。
假设我在数据库中有Category 和Product 模型和适当的表。
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
}
我想从 db 加载 Product 的视图模型列表。 ProductViewModel 就像:
public class ProductViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
public int CategoryName { get; set; }
}
我的sql查询是
SELECT products.Id as Id, products.Name as Name, products.CategoryId as CategoryId, categories.Name as CategoryName
FROM Products as products, Categories as categories WHERE products.CategoryId = categories.Id
但是,有一个产品没有类别,所以,CategoryId == 0,(或者对于string类型,值为null或empty)。
在这种情况下,我的查询不会加载所有产品,因为有些产品没有类别。
我想加载所有产品,并将empty 或null 值赋予CategoryName 属性,这些属性没有类别。我应该如何更改我的查询或如何解决类似的问题?
在此致谢
【问题讨论】:
标签: sql sql-server-2008 join viewmodel jointable