我在阅读DTO列表时遇到麻烦.
我希望从数据库接收DTO列表,因此可以将它们放在WPF部分的表中,但是当我运行程序时,列表中没有数据,也没有错误.我不明白为什么,我的代码有问题吗?
public IList<ProductDTO> GetProducts()
{
IList<ProductDTO>listofproducts = new List<ProductDTO>();
ProductDTO productDto = new ProductDTO();
using (var db = new NORTHWNDEntities())
{
var query = from p in db.Products
select new
{
Name = p.ProductName,
};
foreach (var product in query)
{
productDto.Name = product.Name;
listofproducts.Add(productDto);
}
return listofproducts;
}
}
更新后的版本:
我在代码末尾收到一个错误消息,称为entityexception未由用户代码处理(列表)
public IEnumerable<ProductDTO> GetProducts()
{
using (var db = new NORTHWNDEntities())
{
return db.Products.Select(m => new ProductDTO { Name = m.ProductName }).ToList();
}
}
解决方法:
您将相同的引用添加到列表.您可以这样解决:
public IList<ProductDTO> GetProducts()
{
IList<ProductDTO>listofproducts = new List<ProductDTO>();
using (var db = new NORTHWNDEntities())
{
var query = from p in db.Products
select new
{
Name = p.ProductName,
};
foreach (var product in query)
{
listofproducts.Add(new ProductDTO {Name = product.Name});
}
return listofproducts;
}
}
要么
public IList<ProductDTO> GetProducts()
{
using (var db = new NORTHWNDEntities())
{
return db.Products.Select(m=>new ProductDTO{Name = m.ProductName}).ToList();
}
}