Entity framework core 尽管使用了EF Core HasConversion,我还是有一个InvalidCastException

Entity framework core 尽管使用了EF Core HasConversion,我还是有一个InvalidCastException,entity-framework-core,Entity Framework Core,在EF Core 2.1.3上,我使用了一个转换,但我有一个InvalidcastException。 请注意,MyProperty具有下面代码所要求的正确类型转换 在这方面: builder.Entity<MyTable>().Property(o => o.MyProperty).HasMyPropertyConversion(); 有效的示例: public void ThisWorks() { var _ = _myContext

在EF Core 2.1.3上,我使用了一个转换,但我有一个
InvalidcastException
。 请注意,
MyProperty
具有下面代码所要求的正确类型转换

在这方面:

builder.Entity<MyTable>().Property(o => o.MyProperty).HasMyPropertyConversion();
有效的示例:

public void ThisWorks()
{
    var _ = _myContext
                .MyTable
                .Where(x => x.MyProperty == 10L)
                .ToList();
}

public void ThisWorksAWell(long value)
{
    var _ = _myContext
                .MyTable
                .AsEnumerable()
                .Where(x => x.MyProperty == value)
                .ToList();
}
错误:

System.InvalidCastException
Invalid cast from 'System.Int64' to 'MyProject.MyProperty'.
似乎带参数的SQL生成失败了。请注意,我无法编写内存测试来复制它

更新:

我对本地数据库和内存中的数据库进行了测试

更新2:

这个问题在NetCore3.0中得到了解决

public void ThisWorks()
{
    var _ = _myContext
                .MyTable
                .Where(x => x.MyProperty == 10L)
                .ToList();
}

public void ThisWorksAWell(long value)
{
    var _ = _myContext
                .MyTable
                .AsEnumerable()
                .Where(x => x.MyProperty == value)
                .ToList();
}
System.InvalidCastException
Invalid cast from 'System.Int64' to 'MyProject.MyProperty'.