首页 > 解决方案 > ASP.NET MVC 如何在同一解决方案中使用另一个项目中的函数

问题描述

我尝试了各种方法来让我的应用程序正常工作,并尝试在这里搜索我收到的各种消息的解决方案,但没有一个有效。因此,我决定从头开始,并要求以正确的方式连接我的 2 个应用程序。

我有一个解决方案,里面有 2 个项目:

这是 ApplicationApi 中的函数,我想在 Application 中调用函数

namespace ApplicationApi.Controllers
{
    public class TokenController:ApiController
    {
        public String Get()
        {
            var auth = new AuthenticationController();
            return auth.AuthenticateUser("user@one.com", "P@ssw0rd").ToString();
        }
    }
}

这是 ApplicationApi 调用的函数

namespace Application.Controllers.API
{
    public class AuthenticationController : Controller
    {
        ApplicationDbContext dbContext = new ApplicationDbContext();
        Logger log = LogManager.GetCurrentClassLogger();
        PasswordHasher passwordHasher = new PasswordHasher();
        public bool AuthenticateUser(String username, String password)
        {
            try
            {
                var user = dbContext.Users.FirstOrDefault(u => u.UserName == username);
                if (user == null)
                {
                    log.Error(username + " not found");
                    return false;
                }
                else
                {
                    var result = passwordHasher.VerifyHashedPassword(user.PasswordHash, password);
                    if (result == PasswordVerificationResult.Success)
                    {
                        return true;
                    }
                    else
                    {
                        log.Error("Invalid password for user: " + username);
                        return false;
                    }
                }
            }
            catch (Exception e)
            {
                log.Error(e, "Exception found for user: " + username);
                return false;
            }
        }
    }
}

目前,当我从 Postman 发出请求时,当调试打开时,我从 Application 收到此错误:

{“没有为具有不变名称“System.Data.SqlClient”的 ADO.NET 提供程序找到实体框架提供程序。确保该提供程序已在应用程序配置文件的“entityFramework”部分注册。请参阅http://go.microsoft .com/fwlink/?LinkId=260882了解更多信息。"}

这看起来像是在说我的 ApplicationApi 需要有 EntityFramework 或需要引用它才能工作?

这就是我感到困惑的地方。ApplicationApi 只应该向 Application 询问结果。为什么会发生此错误?ApplicationApi 没有任何数据库连接。它也不需要。它只是一个传输层。

也许我开始错了,所以我希望有人可以指导我如何实际做到这一点。

编辑:我的问题不是那个问题的重复,因为我在问为什么我需要 EntityFramework 在不会连接到数据库的 Api 项目中?

标签: c#asp.netasp.net-mvc

解决方案


推荐阅读