.net-core - 当 EFCore 尝试将数据从存储库返回到控制器时,为什么 asp.net 核心项目会崩溃?
问题描述
我正在尝试通过在我的 asp.net 核心 mvc 应用程序中使用 EFCore 从数据库中获取数据,但是当存储库尝试将数据返回到控制器时,应用程序崩溃了。
工具我正在使用 Vs2017、MSSQL2017、Asp.net Core 2.2、EFCore2.2。我已经创建了一个存储库,用于对数据库中的用户进行身份验证。当我尝试通过控制器发送用户名和密码来通过存储库对用户进行身份验证时,应用程序崩溃。
即使我在调试时可以看到该用户已通过身份验证,并且存储库从数据库中获取该用户。但是当存储库尝试将用户返回到控制器时,应用程序就会崩溃。它不会生成任何类型的异常,但是一旦存储库尝试返回用户就会崩溃。
但是我在Vs2017的输出窗口中可以看到一些信息,如下
“iisexpress.exe”已退出,代码为 -1073741819 (0xc0000005)“访问冲突”
控制器代码
公共类 LoginController : AppController { 私有只读 IUserRepository _userRepository;
public LoginController(IUserRepository userRepository)
{
_userRepository = userRepository;
}
[HttpGet]
public IActionResult Login()
{
return View(new LoginViewModel());
}
[HttpPost]
public IActionResult Login(LoginViewModel loginViewModel)
{
loginViewModel.Password = EncryptionLibrary.EncryptText(loginViewModel.Password);
var user = _userRepository.FindUser(loginViewModel.Username, loginViewModel.Password);
if ( user!= null)
{
this.CurrentSaleState.Login.Id = user.Id;
return RedirectToAction("Create", "RegisterCompany");
}
return null;
}
}
存储库代码
public UserModel FindUser(string userName, string password) {
using (IRepositoryContext context = _repositoryFactory.CreateContext())
{
var user = context.Set<User>().FirstOrDefault(u => u.Username == userName && u.Password == password);
var userModel = _modelMapper.Map<User, UserModel>(user);
return userModel;
}
}
我希望在验证用户身份后应该移动到另一个页面。
解决方案
我参加聚会可能为时已晚,但对于在这里徘徊的人来说。
我看到你正在使用映射器。
在我的情况下,这种确切的情况是由错误映射引起的 StackOverflowException 引起的。
推荐阅读
- angular - 角管中的注入服务给出了未提供“storageSrv”的参数
- highcharts - 在执行鼠标悬停工具提示时,具有自动框架可见性的旋转 3D Highchart 会导致奇怪的行为
- python - 如何使用 Splunk TA 配置使用多个 IIQ SailPoint 环境设置 Splunk:SailPoint 自适应响应
- json - 如何在 swift 中使用 JSON 响应更改单击的单元格按钮标签
- react-native - bash:本机:找不到命令 命令
- java - 在 JAVA 中使用 Rest API 客户端上传文件
- git - 如何解决"/bin/bash: line 119: 28 Segmentation fault 'git' "clean" "-ffdx"" 问题?
- kubernetes - Kubernetes CronJob 问题
- css - Bootstrap 4 复选框/开关控制 - 如何变小(-sm)?
- azure - 如何使用 Powershell Runbook 在 Azure Function App 中更改平台设置