写入将数据返回到Entity Framework中的datagridView的函数

时间:2018-06-18 12:28:43

标签: c# entity-framework linq

我是Entity Framework的新手。我的问题是我想编写一个将结果查询返回给DataGridView的函数。

'System.Collections.Generic.IEnumerable<AnonymousType#1>'

但我得到了错误

  

无法隐式将'System.Collections.Generic.IEnumerable<LoanManagementSystem.tblCustomerType>'类型转换为var = "bello" pas = raw_input("insert password\n") if(pas==var): print("\naccess granted\n") print("\ncool information") else: print("\naccess denied")

4 个答案:

答案 0 :(得分:1)

您的方法返回特定类型:

public IEnumerable<tblCustomerType> GetCustomerType()

但是你选择的是一种无趣的类型:

select new {c.CustomerTypeID, c.CustomerType}

根据命名,听起来你的方法只是想直接返回记录。所以没有必要投射到另一种类型:

var  x = (from c in context.tblCustomerTypes
         select c).AsEnumerable();
return x;

真正可以简化为:

return context.tblCustomerTypes;

理想情况下,您的方法会返回IQueryable<tblCustomerType>,而实际上并不会实现任何记录。然后,如果您有一些其他逻辑下游只需要数据的子集,那么您将执行该投影。推迟数据的实现,直到您真正需要它为止。

答案 1 :(得分:1)

public IEnumerable<tblCustomerType> GetCustomerType()
    {
       // IEnumerable<tblCustomerType> result;
        using (var context = new dbLMSEntities())
        {
            return context.tblCustomerTypes.ToList();
        }
}

答案 2 :(得分:0)

将函数返回类型更改为IQueryable。

public IQueryable GetCustomerType()
{
   // IEnumerable<tblCustomerType> result;
    using (var context = new dbLMSEntities())
    {

       var  x = (from c in context.tblCustomerTypes
                 select new 
                 {
                     c.CustomerTypeID,
                     c.CustomerType
                 });
        return x;
    }
}

答案 3 :(得分:0)

函数返回类型与您尝试返回的类型不同。您已声明函数返回类型以返回IEnumerable,而您实际上正在返回匿名类的IEnumerable。