Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Iqueryable与通用存储库一起使用不会';我找不到记录_C#_Repository_Repository Pattern_Structuremap - Fatal编程技术网

C# 将Iqueryable与通用存储库一起使用不会';我找不到记录

C# 将Iqueryable与通用存储库一起使用不会';我找不到记录,c#,repository,repository-pattern,structuremap,C#,Repository,Repository Pattern,Structuremap,我有一个已知的工作存储库。使用structuremap作为IOC 但我无法使用以下内容执行任何Iqueryable搜索: private IRepository<Employee> _employeeRepository; public Employee GetEmployeeByUserName(Employee employee) { return _employeeRepository.Find() .Where(i

我有一个已知的工作存储库。使用structuremap作为IOC

但我无法使用以下内容执行任何Iqueryable搜索:

 private IRepository<Employee> _employeeRepository;
 public Employee GetEmployeeByUserName(Employee employee)
    {
        return _employeeRepository.Find()
                .Where(i => i.User_Name == employee.User_Name) 
                        as Employee;
    }
private电子邮箱\u employeeRepository;
公共员工GetEmployeeByUserName(员工)
{
return _employeeRepository.Find()
.Where(i=>i.User\u Name==employee.User\u Name)
作为员工;
}
雇员住所:

 public IQueryable<T> Find()
    {
        var table = this.LookupTableFor(typeof(T));
        return table.Cast<T>();
    }
public interface IRepository<T> where T: class
{
    void Commit();
    void Delete(T item);
    IQueryable<T> Find();
    IList<T> FindAll();
    void Add(T item);      

}
public IQueryable Find()
{
var table=this.LookupTableFor(typeof(T));
return table.Cast();
}
i推定:

 public IQueryable<T> Find()
    {
        var table = this.LookupTableFor(typeof(T));
        return table.Cast<T>();
    }
public interface IRepository<T> where T: class
{
    void Commit();
    void Delete(T item);
    IQueryable<T> Find();
    IList<T> FindAll();
    void Add(T item);      

}
公共接口i假设,其中T:class
{
无效提交();
作废删除(T项);
IQueryable Find();
IList FindAll();
无效添加(T项);
}

什么给了???

Find方法不需要泛型类型,where子句返回一个IEnumerable,您试图将其转换为Employee。将where子句替换为FirstOrDefault。e、 g

_employeeRepository.Find()
                .FirstOrDefault(i => i.User_Name == employee.User_Name)
就这样!!太棒了!:)谢谢