不是泛型类中的工作函数



我需要使用此代码来查找用户:

主要项目:

public MainWindow()
{
var usersManagerService = StructureMapDefnation.Container.GetInstance<IUser>();
var qUser = usersManagerService.Find(x => x.Username == "k" && x.Password == "k");
InitializeComponent();
}

EFUesrService:

public class EfUserService : EfGenericService<User>, IUser
{
public EfUserService(IUnitOfWork uow) : base(uow)
{
}
}

EFGenericService:

public class EfGenericService<T> : IGenericService<T> where T : class
{
protected IUnitOfWork Uow;
protected IDbSet<T> Entites;
public EfGenericService(IUnitOfWork uow)
{
Uow = uow;
Entites = Uow.Set<T>();
}
public T Find(Func<T, bool> predicate)
{
return Entites.Where(predicate).FirstOrDefault();
}
}

它找不到任何这个,但这个用户"K"存在于数据库中。
怎么了?如何解决问题?

您可以尝试诊断问题的方法很少:

1(让我们放宽标准以确保数据库中有任何数据。这将检查与数据库的连接是否正常工作。 取代

var qUser = usersManagerService.Find(x => x.Username == "k" && x.Password == "k");

变成类似的东西

var qUser = usersManagerService.Find(x => x.Username == x.Username);

2a(如果您已成功获取一些数据,则可以将上述内容更改为更具体的内容,例如

var qUser = usersManagerService.Find(x => x.Username == "k");

即:检查用户名是否正确或检查密码是否正确。

2b(如果您未能获得任何数据,那么您可能需要查看数据库连接等(并且可能包含更多信息以及您尝试过不成功的内容(。

最新更新