我使用的是带有实体框架的ASP.NET核心3.1。我正在尝试将字节数组存储到数据库中。当然,我的MySQL数据库应该支持这一点,但是实体框架似乎不起作用。
考虑以下模型:
public class User
{
[Key]
public int Id { get; set; }
public string Username { get; set; }
public string Email { get; set; }
public byte[] Salt { get; set; }
public byte[] Password { get; set; }
[NotMapped]
public string PlainPassword { get; set; }
}现在,每当我使用包管理器控制台执行Add-Migration InitialCreate时,我都会得到以下输出:
PM> Add-Migration InitialCreate
Build started...
Build failed.每当我将byte[]更改为string时,它都可以工作,但密码不是字符串。我该怎么办?将它们转换为字符串,或者是否有其他解决方法?如果我应该将它们转换为字符串,那么转换它们的最好方法是什么?
发布于 2021-07-15 18:19:54
使用实体框架核心6.0预览版6,您可以进行预先约定的模型配置。也就是说,您可以配置,例如,将所有字符串存储为字节数组:
protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder)
{
configurationBuilder.Properties<string>()
.HaveConversion<byte[]>()
.HaveMaxLength(255);
configurationBuilder.IgnoreAny<INonPersisted>();
}https://stackoverflow.com/questions/64184913
复制相似问题