zde*_*dev 5 entity-framework-core
在课堂上,我有一个私有字段:
private string _extraSettings;
Run Code Online (Sandbox Code Playgroud)
我使用以下代码将其映射到名为 ExtraSettings 的列:
modelBuilder.Entity<MyClass>(e =>
{
e.Property<string>("ExtraSettings").HasField("_extraSettings").UsePropertyAccessMode(PropertyAccessMode.Field);
});
Run Code Online (Sandbox Code Playgroud)
这在 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
Run Code Online (Sandbox Code Playgroud)
MyClass 类没有 ExtraSettings 属性,但由于某种原因,它在 2.2 中有效 - 为什么它在 3.1 中不起作用,我需要做什么才能消除此错误?
从EF Core 3.0开始:
仅字段属性必须与字段名称完全匹配。
所以你可以这样做:
modelBuilder.Entity<MyClass>(e =>
{
e.Property<string>("_extraSettings").HasColumnName("ExtraSettings");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3169 次 |
| 最近记录: |