小编Joo*_*zef的帖子

EF Core:仅在保存时忽略属性

我已将实体映射到数据库视图(用于查询数据)以及表(用于插入、更新数据)。

要将实体映射到数据库视图,我使用以下代码(来自 EF 5.0 文档):

modelBuilder
    .Entity<Blog>()
    .ToTable("Blogs")
    .ToView("BlogsView");
Run Code Online (Sandbox Code Playgroud)

在数据库视图中,我有由数据库计算的附加列(它们不存在于表中)。我在每个选择查询中都需要这些附加列,但在保存和更新时需要忽略它们。

数据[NotMapped]注释不是解决方案,因为它忽略所有命令(选择、更新等)的属性。但是,当我省略[NotMapped]数据注释时,EF 会在插入时引发错误,因为 EF 尝试将值插入到表中不存在的列中。

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]属性也不是解决方案,因为在 SQL 插入语句中,EF 生成一个从表而不是数据库视图中选择列的查询。

是否有任何解决方案可以使用 Fluent API 实现此目的,而无需将不同的实体单独映射到视图(带有附加列)和表(没有附加列)?

c# entity-framework-core ef-fluent-api

9
推荐指数
1
解决办法
4071
查看次数

标签 统计

c# ×1

ef-fluent-api ×1

entity-framework-core ×1