1

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

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

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

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

4

1 回答 1

1

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

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

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

于 2012-08-08T00:05:06.487 回答