我需要将此代码用于查找用户:
主要项目:
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();
}
}
它找不到任何这个,但这个用户&#34; K&#34;存在于数据库中 问题是什么?我该如何解决这个问题呢?
答案 0 :(得分:0)
您可以尝试诊断问题:
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");
ie:检查用户名是否正确或检查密码是否正确。
2b)如果你没有得到任何数据,那么你需要查看可能的数据库连接等(并且可能包含更多信息以及你尝试过的不成功的信息)。