无法隐式转换类型“ pottery_store.datalayer.domain.user” “布尔”

发布于 2025-02-12 23:15:40 字数 2409 浏览 1 评论 0原文

我正在尝试为我的项目使用干净的体系结构。对于“登录”部分,我在存储库中制作了一个想要检查的方法,即用户存在此“电子邮件”和“密码”。现在我面对这个错误。请帮助我解决此错误,并在此处编写真实的代码。问题是“通过此电子邮件和密码存在用户”方法。

using Pottery_store.DataLayer.Context;
using Pottery_store.DataLayer.Domain;
using Pottery_store.DataLayer.Interfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pottery_store.DataLayer.Repositories
{
    public class UserRepository : IUserRepository
    {
        Pottery_storeDbContext _context;
        public UserRepository(Pottery_storeDbContext context)
        {
            _context = context;
        }

        public int AddUser(User user)
        {
            _context.Users.Add(user);
            return user.UserId;
        }

        public void DeleteUser(int userId)
        {
            //_context.Remove(_context.Users.Where(x => x.UserId == userId));
            var user = GetUserById(userId);
            DeleteUser(user);
        }

        public void DeleteUser(User user)
        {
            // _context.Remove(_context.Users.Where(x => x.UserId == user.UserId));
            _context.Remove(user);
        }

        public void EditUser(User user)
        {
            _context.Users.Update(user);
        }

        public IEnumerable<User> GetAllUsers()
        {
            return _context.Users;
        }

        public User GetUserByActiveCode(string activeCode)
        {
            //return _context.Users.Find(activeCode);
            return _context.Users.SingleOrDefault(u => u.ActiveCode == activeCode);
        }

        public User GetUserById(int userId)
        {
            // return _context.Users.Find(x => x.UserId == userId);
            return _context.Users.Find(userId);
        }

        public bool IsEmailExist(string email)
        {
            return _context.Users.Any(u => u.Email == email);
        }

        public bool IsUserNameExist(string userName)
        {
            return _context.Users.Any(u => u.UserName == userName);
        }

        **public bool IsUserExistByThisEmailAndPassword(string email, string password)
        {
            return _context.Users.SingleOrDefault
                   (u => u.Email == email && u.Password == password);
        }**

        public void Save()
        {
            _context.SaveChanges();
        }
    }
}

I'm trying to use clean architecture for my Project. for "Log in" part I made a method in repository that want to check is user exist wit this "email" and "password". now I faced with this error. please help me to solve this error and write true codes here. The Problem is "Is User Exist By This Email And Password" method.

using Pottery_store.DataLayer.Context;
using Pottery_store.DataLayer.Domain;
using Pottery_store.DataLayer.Interfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pottery_store.DataLayer.Repositories
{
    public class UserRepository : IUserRepository
    {
        Pottery_storeDbContext _context;
        public UserRepository(Pottery_storeDbContext context)
        {
            _context = context;
        }

        public int AddUser(User user)
        {
            _context.Users.Add(user);
            return user.UserId;
        }

        public void DeleteUser(int userId)
        {
            //_context.Remove(_context.Users.Where(x => x.UserId == userId));
            var user = GetUserById(userId);
            DeleteUser(user);
        }

        public void DeleteUser(User user)
        {
            // _context.Remove(_context.Users.Where(x => x.UserId == user.UserId));
            _context.Remove(user);
        }

        public void EditUser(User user)
        {
            _context.Users.Update(user);
        }

        public IEnumerable<User> GetAllUsers()
        {
            return _context.Users;
        }

        public User GetUserByActiveCode(string activeCode)
        {
            //return _context.Users.Find(activeCode);
            return _context.Users.SingleOrDefault(u => u.ActiveCode == activeCode);
        }

        public User GetUserById(int userId)
        {
            // return _context.Users.Find(x => x.UserId == userId);
            return _context.Users.Find(userId);
        }

        public bool IsEmailExist(string email)
        {
            return _context.Users.Any(u => u.Email == email);
        }

        public bool IsUserNameExist(string userName)
        {
            return _context.Users.Any(u => u.UserName == userName);
        }

        **public bool IsUserExistByThisEmailAndPassword(string email, string password)
        {
            return _context.Users.SingleOrDefault
                   (u => u.Email == email && u.Password == password);
        }**

        public void Save()
        {
            _context.SaveChanges();
        }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少女情怀诗 2025-02-19 23:15:40

如果您只是在寻找一个存在,则可能只能坚持使用任何()。如果只想验证一个存在,请用null比较您当前的结果。仅验证一个存在一个问题,就会提出应在何处发生验证并提出错误的问题,但这与您的问题是一个单独的对话。

存在

public bool IsUserExistByThisEmailAndPassword(string email, string password)
{
     return _context.Users.Any(u => u.Email == email && u.Password == password);
}

单身

public bool IsUserExistByThisEmailAndPassword(string email, string password)
{
    var user = _context.Users.SingleOrDefault(u => u.Email == email && u.Password == password);
    return user != null;
}

If you are just looking for an exists you should probably just stick with Any(). If wanting to verify only one exists, compare your current result with null. Verifying only one exists brings up the issue of where that validation should occur and error thrown, but that is a separate conversation from your question.

Exists

public bool IsUserExistByThisEmailAndPassword(string email, string password)
{
     return _context.Users.Any(u => u.Email == email && u.Password == password);
}

Single

public bool IsUserExistByThisEmailAndPassword(string email, string password)
{
    var user = _context.Users.SingleOrDefault(u => u.Email == email && u.Password == password);
    return user != null;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文