EFCore为电子邮件列保存了错误的值。
例如:该属性类具有字符串值:“ [email protected]。”但是,当我检查存储的值时(无论是在SQL Server中还是使用EFCore获取对象)是:“ [email protected] ??。br。”
??在原始电子邮件值中不存在。
我已直接插入数据库中,但不会发生此问题。
复制步骤尝试使用EFCore进行简单插入,如下所示:
来自我的存储库类的insert方法:
public void Insert(T entity)
{
DbContext.Set<T>().Add(entity);
DbContext.SaveChanges();
}
我的映射实体类:
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using DataImoveis.Domain.Entities.Abstraction;
namespace DataImoveis.Domain.Entities
{
[Table("SIL_IMOVEL_INQUILINO")]
public class ImovelInquilino : BaseEntity
{
[Key]
[Column("cod")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Cod { get; set; }
[Column("propertyId")]
public int PropertyId { get; set; }
[Column("lastUpdatedDate")]
public DateTime LastUpdatedDate { get; set; }
[Column("tenantName")]
public string TenantName { get; set; }
[Column("tenantContact")]
public string TenantContact { get; set; }
[Column("tenantEmail")]
public string TenantEmail { get; set; }
[Column("tenantPhone")]
public string TenantPhone { get; set; }
[Column("tenantIndustry")]
public string TenantIndustry { get; set; }
}
}
我的DbContext类:
using DataImoveis.Domain.Entities;
using DataImoveis.Domain.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.Extensions.Options;
namespace DataImoveis.Infrastructure
{
public class DbContext : Microsoft.EntityFrameworkCore.DbContext
{
public virtual DbSet<ImovelInquilino> ImovelInquilino { get; set; }
private IOptions<Settings> settings;
public override DatabaseFacade Database { get { return base.Database; } }
public DbContext(IOptions<Settings> settings) : base() =>
this.settings = settings;
protected override void OnConfiguring(
DbContextOptionsBuilder optionsBuilder
)
{
optionsBuilder.UseSqlServer(
settings.Value.ConnectionStrings.DefaultConnection
);
}
protected override void OnModelCreating(ModelBuilder modelBuilder) { }
}
}
数据库中的列详细信息:
[tenantEmail] [varchar](70) NULL,
此字段没有触发器或以后的更新。
我启用了DbContext操作的日志记录功能,以检查从EFCore发送到数据库的参数,并且我认为一切正常:
Executed DbCommand (24ms) [Parameters=[(...) @p14='[email protected].br.' (...)]
更多技术细节EF核心版本:3.1.4数据库提供程序:Microsoft.EntityFrameworkCore.SqlServer 3.1.3数据库:SQL Server 2019目标框架:.NET Core 3.1操作系统:在Ubuntu 18.04(在WSL2)或Windows 10上IDE:VSCode