Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 是否有方法将过滤器添加到实体框架层以排除;“已归档”;记录?_Asp.net Mvc 3_Entity Framework_Entity Framework 4_Entity Framework 5 - Fatal编程技术网

Asp.net mvc 3 是否有方法将过滤器添加到实体框架层以排除;“已归档”;记录?

Asp.net mvc 3 是否有方法将过滤器添加到实体框架层以排除;“已归档”;记录?,asp.net-mvc-3,entity-framework,entity-framework-4,entity-framework-5,Asp.net Mvc 3,Entity Framework,Entity Framework 4,Entity Framework 5,我有标记为“IsArchived”的记录。我正在寻找从当前MVC3/EF3 web应用程序中排除这些记录的方便方法 有没有办法向EF层添加某种“IsArchived”过滤器。在我的例子中,我有一个单独的模型项目,其中表/视图表示为POCO实体,映射包含在CSDL和SSDL文件中 非常感谢您的帮助 编辑: 我使用的是“ObjectContext”而不是“DbContext”,主要是因为我使用的数据建模工具。此工具创建上下文和POCO文件 我想知道是否可以按如下方式编辑此上下文文件: pub

我有标记为“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;
        }
    }
public ObjectSet StdOrg
{
得到
{
如果(_StdOrg==null))
{
_StdOrg=base.CreateObjectSet(“StdOrg”);
//下面是新线,两边的投法错误。
_StdOrg=(ObjectSet)\ u StdOrg.Where(r=>r.IsArchived==false);
}
返回(StdOrg);;
}
}
看看这个

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


但是,我们使用的是DBcontext,因此不确定这将如何处理对象上下文,或者如何调整它

您是否在
DBcontext
DbSet
上有某种形式的抽象(例如
UnitOfWork
&
存储库
)?您好,谢谢您的回复。不,我没有,我刚刚读了一些关于这个问题的有趣观点。我认为存储库是一个不假思索的推荐路线,但似乎不是。现在有一个强大的学派认为,对于现代的ORMs,不太需要另一个抽象层,所以我的权宜之计可能不是一个坏主意。我刚刚发现我使用的是“ObjectContext”而不是“DBContext”,并试图将过滤器放入这个上下文文件中。请参阅编辑。以下是我对
存储库
模式的想法-在您的情况下,这意味着您可以轻松添加过滤,我给了您另一个分数!!!非常有趣。谢谢然而,我有点担心修改不同的代码例程来使用这个接口。目前,我通过LINQ直接在控制器中使用EF。是的,使用存储库模式可能更好,但我想我现在是在时间压力下来到这里的,稍后会考虑集成此存储库模式,而ObjectContext中添加的过滤器理论上应该只为我的整个应用程序实现过滤器。我将此标记为一个答案,因为这是一个很好的终点,但是,对于ObjectContext来说并不完全正确。我最后做的是在模型中创建一个“映射条件”,它工作得很好。但是,条件属性不能用作属性,因此对此列的更新需要原始DDL。我相信NHibernate在过滤方面比EF更先进。谢谢