entity-framework-core - 将私有字段映射到在 EF Core 3.1 中不起作用的列
问题描述
在课堂上,我有一个私人领域:
private string _extraSettings;
我使用以下代码将其映射到名为 ExtraSettings 的列:
modelBuilder.Entity<MyClass>(e =>
{
e.Property<string>("ExtraSettings").HasField("_extraSettings").UsePropertyAccessMode(PropertyAccessMode.Field);
});
这在 EF Core 2.2 中工作正常,但在 EF Core 3.1 中停止工作,出现以下错误:
The specified field '_extraSettings' cannot be used for the property 'MyClass.ExtraSettings' because it does not match the property name
MyClass 类没有 ExtraSettings 属性,但由于某种原因,这在 2.2 中有效 - 为什么它在 3.1 中不起作用,我需要做什么才能摆脱这个错误?
解决方案
从EF Core 3.0开始:
仅字段属性必须与字段名称完全匹配。
因此,您可以执行以下操作:
modelBuilder.Entity<MyClass>(e =>
{
e.Property<string>("_extraSettings").HasColumnName("ExtraSettings");
});
推荐阅读
- python - 如何使用 PYTHONPATH 和 VSCode Python 扩展进行调试?
- r - R ggplot barplot:躲闪条之间的间距不一致
- rust - 如何插入HashMap取消引用的LinkedList迭代器?
- java - Eclipse 2019-09 光标随机消失,有时停止写入
- selenium-webdriver - 运行 Selenium 测试时出现 IllegalStateException
- python - Flask+SQLAlchemy:如何在一对多数据库中显示最新条目
- java - 有什么方法可以从网格表查看器中拖放到 nat 表中
- java - 矩阵中的最小路径和
- python - selenium python动态下拉菜单
- java - 使用 Volley 在服务器上同步数据