【问题标题】:How do I tell EF to ignore columns from my database?如何告诉 EF 忽略我的数据库中的列?
【发布时间】:2012-08-08 08:05:06
【问题描述】:

我正在从我的 SQL Server 数据库构建我的 EF (v4.0.30319) 数据模型。每个表都有通过数据库触发器填充的 CreatedUpdated 字段。

此数据库是 ASP.NET Web API 应用程序的后端,我最近发现了一个问题。问题是,由于 CreatedUpdated 字段没有填充到传递到 api 端点的模型中,因此它们以 NULL 的形式写入数据库。这会覆盖这些属性的数据库中已有的任何值。

我发现我可以编辑 EF 数据模型并从实体中删除这两列。它可以工作并且日期时间不会被NULL 覆盖。但这会导致另一个不那么严重但更烦人的问题......我的数据模型有一堆包含这些属性的表,并且所有表都需要通过删除这两列来更新。

有没有办法告诉 EF 忽略整个数据模型中实体中的某些列而不手动删除它们?

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    据我所知,没有。从数据库生成模型将始终从数据库表中创建所有字段。好吧,只要它有一个主键就可以了。

    可以只更新您想要的字段,即不要在您的创建和更新方法中包含“已创建”和“已更新”字段。不过,我不得不说,如果那时模型上甚至不存在这些字段,我认为会更好。您可能在某一时刻看到模型上的这些字段,但不记得它们不会被持久化到数据库中。

    您可能希望在调用 create() 和 update() 方法时仅将日期时间插入这些字段。然后你可以放弃触发器。您显然希望对所有数据库操作都使用一个类库,以便将这个功能放在一个地方。为了保持美观整洁,你知道吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多