实体框架,软删除和查询

iPe*_*Peo 6 c# entity-framework asp.net-mvc-3

所以这是我的情况:

我正在使用IsDeleted标志软删除表中的某些行,以便a可以保留我的存档数据的跟踪.我通过覆盖SaveChanges我的陈述来这样做ObjectContext.

问题是:如何只选择具有的行IsDeleted == false,而不必&& !IsDeleted在每个查询中指定?

有没有办法可以直接在我的上下文中指定它?

TKX!

mar*_*c_s 7

您可以在表上定义视图并查询该视图:

CREATE VIEW dbo.ActiveData
AS
  SELECT (list of columns)
  FROM dbo.YourTable
  WHERE IsDeleted = 0
Run Code Online (Sandbox Code Playgroud)

然后在EDMX模型中,从ActiveData视图而不是基表中读取数据.


Str*_*ior 6

如果右键单击模型查看器中的EntitySet,然后单击"表映射",则可以在"添加条件"区域中进行操作.根据marc_s的建议,尽管你可能最好使用View,但这应该可以满足您的要求.