如何扩展 Reverse POCO Generator 生成的 POCO?
How to extend POCO generated by Reverse POCO Generator?
我使用 Reverse POCO Generator 为我的项目生成了 pocos(部分 classes)。
然后,我通过创建一个具有相同 class 名称和相同命名空间的新部分 class(新文件)来扩展我的一个 pocos。我添加了新的属性,例如:
public int NewProperty { get; set; }
现在,问题是,当我查询数据库时,我看到新的 属性 包含在我的 DBContext 中。我看到 select 语句如下:SELECT Field1、Field2、NewProperty FROM MyDatabase。
当然,我收到以下错误:SqlClientException:列名称无效 'NewProperty',因为该字段不存在。
如何阻止 DBContext 在数据库操作中包含我的新 属性? 我在以前的项目中这样做过并且没有任何问题(使用 edmx 模型)。
谢谢
如果您使用 Entity Framework,您可以通过添加 NotMapped
属性使其忽略 属性,如下所示:
[NotMapped]
public int NewProperty { get; set; }
这也可以设置为 fluent API 如果您愿意,对于 EF Core 应该是这样的:
modelBuilder.Entity<YourClass>().Ignore(t => t.NewProperty);
我使用 Reverse POCO Generator 为我的项目生成了 pocos(部分 classes)。
然后,我通过创建一个具有相同 class 名称和相同命名空间的新部分 class(新文件)来扩展我的一个 pocos。我添加了新的属性,例如:
public int NewProperty { get; set; }
现在,问题是,当我查询数据库时,我看到新的 属性 包含在我的 DBContext 中。我看到 select 语句如下:SELECT Field1、Field2、NewProperty FROM MyDatabase。
当然,我收到以下错误:SqlClientException:列名称无效 'NewProperty',因为该字段不存在。
如何阻止 DBContext 在数据库操作中包含我的新 属性? 我在以前的项目中这样做过并且没有任何问题(使用 edmx 模型)。
谢谢
如果您使用 Entity Framework,您可以通过添加 NotMapped
属性使其忽略 属性,如下所示:
[NotMapped]
public int NewProperty { get; set; }
这也可以设置为 fluent API 如果您愿意,对于 EF Core 应该是这样的:
modelBuilder.Entity<YourClass>().Ignore(t => t.NewProperty);