System.InvalidCastException:无法转换类型的对象 ' Microsoft.EntityFrameworkCore.Storage.Internal.NpgsqlArrayTypeMapping' 输入 ' Microsoft.EntityFrameworkCore.Storage.Internal.NpgsqlBaseTypeMapping'
我怀疑它不是Npgsql问题,因为我认为,[NotMapped]属性应该忽略double [] []而不是尝试将其映射到某个东西。
这是模型中令人讨厌的部分
[NotMapped]
public double[][] LossData
{
get
{
return JsonConvert.DeserializeObject<double[][]>(InternalLossData);
}
set
{
InternalLossData = JsonConvert.SerializeObject(value);
}
Microsoft.EntityFrameworkCore.Tools是版本1.1.0-preview4-final。我假设这是负责Add-Migration的包,因此我怀疑问题可能存在。
但我不知道。
更新
mww的建议没有用,所以我切换到使用默认的sql驱动程序(而不是Npgsql)并且它有效。所以这会把它缩小到我没有正确做的事情或Npgsql的事情。
答案 0 :(得分:1)
感谢您的报告,这是Npgsql EF Core提供程序中的一个错误。修复程序将针对1.1.1发布,同时使您的正常非公开(至少是getter或setter)或降级到1.0.x.
答案 1 :(得分:0)
您也可以使用Fluent API,只需在DBContext类中添加它以忽略属性。
在方法OnModelCreating()
添加
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<YourModelClass>().Ignore(d => d.LossData);
base.OnModelCreating(modelBuilder);
}