【问题标题】:Entity framework 4 create a entity with filtered results实体框架 4 创建具有过滤结果的实体
【发布时间】:2012-07-04 18:43:49
【问题描述】:

我需要创建一个带有过滤结果的实体。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    【讨论】:

    • 好一个。我已经接受了答案,并在我的案例中添加了一些额外的步骤作为单独的答案
    【解决方案2】:

    更新

    以下给出的解决方案不起作用。 它仍然给出下面给出的错误映射。

    所以终于找到了一个简单的愚蠢解决方案。添加存储过程。

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


    对 ivowiblo 已接受答案的扩展。

    以上对我有用。

    除此之外,我还需要做一些更改。

    条件映射完成后报错

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

    根据here 的推理,我从实体中删除了 Deleted 列。

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

    我关注了

    1. 在设计器中复制粘贴的 Student 实体
    2. 重命名为StudentWithDeleted
    3. deleted 列添加到StudentWithDeleted
    4. 在映射详细信息中将 StudentWithDeleted 实体映射到表 student

    现在当我想删除(标记已删除)一个学生时,我只需使用find(StudentId) 打开StudentWithDeleted 实体,分配deleted=1 并保存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-09
      • 2017-11-08
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多