我需要创建一个具有过滤结果的实体。
例如:我有一张桌子学生。通过设计师,我可以创建学生实体。当我删除一个学生时,要求只是更改字段deleted=true,而不是实际删除。
所以问题是,每当我试图访问学生时,它都会给出包括被删除的学生在内的整个列表。因此,我必须将代码作为.where(c=> c.deleted=false)添加到使用列表的任何位置。
,所以需求是创建一个带有filter.的实体。
我试着使用视图,但它有自己的问题。就像它需要一个主键,并且是只读的,等等。
发布于 2012-01-25 07:01:08
您可以使用条件映射:http://www.codeproject.com/Articles/94784/Using-Conditional-Mapping-in-Entity-Framework
发布于 2012-01-25 08:59:49
更新
下面给定的解决方案不起作用。它仍然给出了下面给出的错误映射。
所以终于找到了一个简单的愚蠢的解决方案。添加存储过程。
我保留了先前的答案,以供参考。
扩展到被接受的回答伊夫维布洛。
上面为我工作过。
除此之外,我不得不做一些改变。
当条件映射完成时,就会产生错误。
从x行开始映射片段的
问题:条件成员'Student.Deleted‘与'IsNull=False’以外的条件映射。要么删除Student.Deleted上的条件,要么从映射中删除它。
作为给定here的推理,我从实体中删除了已删除的列。
现在的问题是如何删除(标记删除)的学生,因为我的实体没有被删除的属性。
我做了以下
将designer
StudentWithDeleteddeleted列中的Student实体到StudentWithDeletedStudentWithDeleted实体粘贴到表student中的映射详细信息。现在,当我想删除(标记已删除)一个学生,我只是打开StudentWithDeleted实体使用find(StudentId),分配deleted=1和保存。
https://stackoverflow.com/questions/8998698
复制相似问题