我在我的项目中使用MVC4和实体框架5,我有很多表.作为我们项目的规则,我们不会从数据库中删除任何记录,每个记录都有一个isActive字段,如果该字段为false,那么我们认为它已被删除.我想写一个扩展方法来获取活动记录,经过一些谷歌搜索,我写了这个:
public static IQueryable<Company> GetAll(this IQueryable<Company> source)
{
return source.Where(p => p.isActive);
}
Run Code Online (Sandbox Code Playgroud)
现在我可以使用我的扩展方法来获取只有活动的记录
Context db = new Context();
db.Company.GetAll();
Run Code Online (Sandbox Code Playgroud)
但是,假设我的数据库中有50多个表,这是为每个表编写相同扩展方法的好方法.有没有更好的方法为我们所有的表编写一个GetAll()扩展方法?实际上我甚至不确定在这个实例中使用扩展方法是否正确?
有人可以帮助我并告诉我正确的方法吗?如果您帮助代码示例,我将不胜感激.