c# - 如何在C#中填写DTO

标签 c# database foreach dto

我无法阅读我的 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;
    }     
}

更新版本:

我在代码 (tolist) 的末尾收到一个名为 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();
        }     
    }

关于c# - 如何在C#中填写DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14010451/

相关文章:

r - 在 R : Segmentation fault (core dumped) warning 的 foreach 循环中调用可执行文件

c# - 这个 QuickSort 程序有什么问题?

c# - 为应用程序创建更新系统的方向和意见

c# - 创建模型类还是坚持使用通用数据库实用程序类更好?

mysql - MySQL 数据库中 ISBN10 和 ISBN13 的最佳数据类型是什么

c# - 如何在我的类中实现 Foreach 以便我可以获得每个键名和值?

loops - 为什么我应该在循环中使用 foreach 而不是 for (int i=0; i<length; i++) ?

c# - 在 Entity Framework 中选择前 5 名

c# - 获取导致 SQLException 的查询/命令文本

mysql - 使用枚举列替代数据库设计,导致性能不佳