【问题标题】:Visual Studios 2017 - Cannot implicitly convert type 'System.Collections.Generic.List<>' to 'System.Collections.Generic.List<>'Visual Studios 2017 - 无法将类型“System.Collections.Generic.List<>”隐式转换为“System.Collections.Generic.List<>”
【发布时间】:2019-01-03 17:39:00
【问题描述】:

我只是不够熟悉,还不知道为什么会发生这种情况。不知道我错过了什么。我可以使用一些帮助,因为我使用的教程似乎没有遇到同样的问题......

public class CustomerRepository
{
    public List<Customers> GetCustomers()
    {
        var db = new e21testEntities();
        var Customers = db.orderfrom
            .OrderBy(x => x.bus_name)
                .ToList();

        return Customers;
    }
}

客户不会返回错误

不能隐式转换类型 System.Collections.Generic.List&lt;NestedGrid.orderfrom&gt;System.Collections.Generic.List&lt;NestedGrid.Customers&gt;

【问题讨论】:

  • Customers 是否也是您的某一类的名称?
  • db.orderfrom 听起来不应该是Customers 对象的集合...
  • 您还应该在&lt;&gt; 中使用正确的部分重新输入错误。您还需要将其标记为代码,方法是将其包含在 "``" 中,这样它就不会尝试将 &lt;&gt; 中的内容视为标记。
  • orderfrom 是 e21testEntities 模型中的表名。我不确定开发人员为什么要这样命名它,但它确实包含所有客户记录。整个错误是“无法将类型'System.Collections.Generic.List'隐式转换为System.Collections.Generic.List'
  • 然后更新您的问题以显示确切的错误消息。

标签: c# asp.net list


【解决方案1】:

据我了解,您正试图无序地提取客户数据。

在这种情况下,请尝试使用以下代替

var db = new e21testEntities();
var Customers = db.orderfrom
    .OrderBy(x => x.bus_name)
    .Select(o=>new Customer() {Id = o.CustomerId})
    .ToList();

在上面的代码中,您需要根据您拥有的每个订单中的数据手动填写客户对象(在代码中我只填写 Id 属性)。

【讨论】:

  • 如果订单确实有customerID,我希望它们链接到数据库中的客户对象,因此我不希望手动创建客户对象是正确的解决方案。
  • 并非总是如此。但是,如果客户实体存在,我们应该从数据库中获取它。
  • 我还假设“orderfrom”有错误,我们应该改写“orderform”,所以我们使用客户填写的表格。
  • 与其假设,不如等到问题明确之后再说吧?如果错误是 orderfrom 而不是 orderform,那么这将是一条不同的错误消息。
  • 表 orderfrom 字面上没有订单信息....它真的是一个客户表,我不知道他们为什么这样命名它。这令人困惑。它有 Cust_code、Bus_name、...。它似乎可以很好地识别模型和表,因为 'orderBy' 语句中的 .bus_name 没有问题
猜你喜欢
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
  • 2020-06-16
相关资源
最近更新 更多