实体框架4创建具有过滤结果的实体

时间:2012-01-25 06:24:39

标签: asp.net-mvc-3 entity-framework-4

我需要创建一个包含过滤结果的实体。

例如。 我有一张桌子学生。 通过设计师,我能够创建学生实体。 当我删除学生时,要求只是更改一个字段deleted = true而不是实际删除。

所以问题是每当我尝试访问学生时,它会提供包括已删除学生在内的整个列表。 所以我必须在使用列表的地方添加代码.where(c=> c.deleted=false)

所以要求是创建一个带过滤器的实体。

我尝试使用视图,但它有自己的问题。就像它需要一个主键并且是只读等等。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

更新

以下给出的解决方案无效。 它仍然给出了下面给出的错误映射。

所以最终选择了一个简单的愚蠢解决方案。添加存储过程。

我保留了以前的答案以供参考。


扩展到ivowiblo的接受答案。

上面为我工作。

除此之外,我不得不做一些改变。

当条件映射完成时,它给出了错误

  

从第x行开始映射片段的问题:条件成员   'Student.Deleted'的条件不是'IsNull = False'   映射。删除Student.Deleted上的条件或删除它   来自映射。

我从实体中删除了已删除的列作为here的推理。

现在问题是如何删除(标记已删除)学生,因为我的实体没有删除属性。

我做了以下

  1. 在设计器中复制粘贴的Student实体
  2. 将其重命名为StudentWithDeleted
  3. deleted列添加到StudentWithDeleted
  4. 在映射详细信息中将StudentWithDeleted实体映射到表student
  5. 现在,当我想删除(标记已删除)学生时,我只需使用StudentWithDeleted打开find(StudentId)实体,分配deleted=1并保存。