如何使用MVC 3,EF Model First来禁用表中的项目

时间:2012-03-19 15:19:20

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

我首先使用MVC 3,EF模型用于我的Web应用程序。

我有一张包含员工列表的表格,我希望能够停用员工并能够删除员工。我没有删除员工的问题,但我也希望能够使员工失去联系,以便人们无法为员工搜索或使用其他类型的功能,但我仍然希望他们存在于我的数据库中。

2 个答案:

答案 0 :(得分:1)

向表中添加状态字段。员工将拥有不同的状态1 - 在线2 - 无效3 - 已删除。通过这种方式,您可以将所有员工都保留在数据库中,但是您将能够提取目前仅雇用的员工(在线)。

Context.Get().Employees.Where(x => x.Status == EmployeeStatus.Online);

和EmployeeStatus枚举:

public enum EmployeeStatus
{
Online = 1,
Inactive = 2,
Deleted = 3,
}

编辑:

您可能需要进行一些额外的解析以使枚举以这种方式工作;另一方面,你可以通过int值使用pull数据,但enum更清晰。

答案 1 :(得分:1)

我认为使用EF或ADO.net来停用项目(软删除)并不重要。我通常做的是在数据库中放置类似“record_status”的标志,并在我想要软删除记录时更改状态。 在SELECT或UPDATE操作中,我检查此“record_status”列并执行require操作。