我是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")
答案 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。