在EF4.0中返回值时抛出问题

时间:2012-07-13 12:41:48

标签: entity-framework entity-framework-4

我正在尝试使用Entity Framework加载员工。 该方法应该返回员工列表。

它给出了这个错误:

Cannot implicit convert....<Class names and methods>.... An Explicit conversion exists. 

我认为这个问题与演员有关。

请检查以下代码。

    public List<Employee> LoadEmployees()
     {
         try
         {
             EMployeeDB1Entities EE = new EMployeeDB1Entities();
             var Employees = EE.Employees.Where(p => p.Name.StartsWith("T"));
             return Employees;

         }
         catch
         {
             return null;
         }

     }

2 个答案:

答案 0 :(得分:1)

var Employees = EE.Employees.Where(p => p.Name.StartsWith("T")).ToList();

答案 1 :(得分:1)

将您的代码更新为:

return Employees.ToList();

另请注意,这是实际触发数据库查询的ToList()方法。

EE.Employees.Where(....)不查询数据库。当Where()的结果被枚举时,会查询数据库,这是.ToList()所做的。


  

感谢它的工作...还有一个问题,假设我想绑定上面的列表   到网格然后我怎么绑定?

假设您使用的是WPF或Silverlight: 要在数据网格上绑定查询结果,可以公开类型为ObservableCollection的公共属性。 此集合接受IEnumerable<T>对象作为构造函数。 你可以写:

var myCollection = new ObservableCollection<Employee>(this.LoadEmployees());

然后将datagrid的ItemSource属性绑定到您的集合。

如果您在使用绑定时遇到更多问题,我建议您再提一个问题,因为主题完全不同。