2013-04-11 83 views
-2

任何人都可以在用户数据表中为数据库中的逻辑删除或软删除提供示例。因此,与删除的用户相关的数据和所有相关信息可以稍后使用查询。实体框架中的逻辑删除/软删除asp.net

在此先感谢

+1

很多很多重复,例如http://stackoverflow.com/questions/9591285/entity-framework-code-first-soft-delete-lazy-loading – 2013-04-11 07:07:21

回答

1

您可以向用户添加标志,例如请将isDeleted。然后,当你删除用户时,你会将标志设置为true。

class User 
{ 
    public Guid UserId { get; set; } 

    // more user properties 

    public bool IsDeleted { get; set; } 
} 

查询未删除用户:

var users = DatabaseContext.Users.Where(u => !u.isDeleted); 
0

添加到您的表列'IsDeleted',BIT类型。假设您有表“学生”,你可以标记要删除的学生,刚刚更新“请将isDeleted”一栏1. 你可以过滤当你想要得到的数据:

SELECT * FROM学生JOIN .... Where IsDeleted = 0

+0

是的,我知道使用IsDelete,我也使用这个,但在数据获取后使用查询的问题,因为IsDeleted采用布尔值0和1,但是如果任何olumn可以包含空值,那么在处理这种情况时会遇到问题。 – 2013-04-11 06:25:25

+0

然后不要使它为空。 – CodeCaster 2013-04-11 06:30:48