c# - 实体框架 FirstOrDefault 用构造函数值覆盖?
问题描述
我有一个带有构造方法的用户模型 - User()。当我使用 EF 从数据库中检索用户时,EF 从构造函数返回值,而不是从数据库中返回值。我的用户类:
public class User
{
public string Email { get; set;}
public string PasswordSalt { get; set;}
public User()
{
PasswordSalt = "some random value"
}
}
检索用户:
var user = _context.User.FirstOrDefault(o => o.Email == "a@b.com");
结果,user.PasswordHash 将返回“一些随机值”,而不是实际存储在数据库中的哈希值。
解决方案
我们必须改变构造函数如下
public class User
{
public string Email { get; set;}
public string PasswordSalt { get; set;}
public User()
{
PasswordSalt = string.IsNullOrEmpty(PasswordSalt)? "some random value":PasswordSalt;
}
}
推荐阅读
- swift - 在多部分函数上出现 PHP 500 内部错误
- c - 如何提取除初始两个字符外的所有子字符串?
- vba - 为什么要在 VBA 类模块中声明新类型?
- php - 当用户不想要照片时,邮件附件出现错误
- android - 如何在 Retrofit 中处理多种类型的错误响应
- php - Makefile:12:目标“lint”的配方失败
- react-native - 你如何在两个页面之间来回导航并保持状态?
- javascript - 如何防止 React.lazy 呈现回退
- scala - 对象 gatling 不是包 io 的成员
- react-native - 您可以将信息作为可以显示在警报框中的属性传递吗