1

我有标记为“IsArchived”的记录。我正在寻找一种从当前 MVC3 / EF3 Web 应用程序中排除这些记录的便捷方法。

有没有办法向 EF 层添加某种“IsArchived”过滤器。就我而言,我有一个单独的模型项目,其中表/视图表示为 POCO 实体,并且映射包含在 CSDL 和 SSDL 文件中。

非常感谢您的帮助。

编辑:

我使用的是“ObjectContext”而不是“DbContext”,这主要是由于我使用的数据建模工具。此工具创建上下文和 POCO 文件。

我想知道我是否可以像下面这样编辑这个上下文文件:

    public ObjectSet<StdOrg> StdOrg
    {
        get
        {
            if ((_StdOrg == null))
            {
                _StdOrg = base.CreateObjectSet<StdOrg>("StdOrg");
                // new line below. Got cast error tween both sides.
                _StdOrg = (ObjectSet<StdOrg>) _StdOrg.Where(r => r.IsArchived == false);
            }
            return _StdOrg;
        }
    }
4

1 回答 1

2

看看这个http://www.matthidinger.com/archive/2012/01/25/a-smarter-infrastructure-automatically-filtering-an-ef-4-1-dbset.aspx

基本上是一个过滤 DBSet 实现,该示例基本上显示用于软删除。我们在我们的应用程序中使用它没有问题。

但是我们正在使用 DBcontext,所以不确定这将如何与 Object Context 一起使用或如何对其进行调整

于 2013-08-27T21:20:25.673 回答