实体框架查询和is_removed属性
本文关键字:removed 属性 is 框架 查询 实体 | 更新日期: 2023-09-27 18:27:37
我是实体框架的新手,我想在此基础上提供服务,但我在数据库中的大多数表中都有is_removed attrib问题。
例如,我有用户表和文章表。用户和文章都可以删除(is_removed=1)。我不想处理删除的用户或文章,此外,我也不想在我的数据库中创建视图,因为不幸的是,EF没有给我机会对我需要的视图进行CRUD操作。
因此,在这种情况下,我必须使用is_removed属性为每个表创建查询,如下所示(查询返回给定user_id的用户的所有文章):
db.User.Single(
x => x.id == user_id &&
x.is_removed == 0
).Article.Where(
x => x.is_removed == 0
);
你有什么解决办法吗?是否有任何方法可以在不为每个查询使用Is_removed属性的情况下进行此查询?
我会为Linq To Entities stuffes创建一个单独的项目,并为我的所有操作创建一个公共类:
创建类库项目创建实体类创建类名,例如:DALC为DALC创建公共属性,例如:
public IQueryable<Article> Articles { get { return context.Articles.Where(x => x.is_removed == 0); } }
这将解决你的一些问题,但不是全部,我不认为你能实现你想要的一切。
也许你可以为你的实体创建新的属性:所有生成的实体类都是分部的,这意味着你可以用新的属性、方法和字段来扩展它们中的任何一个。
对于用户类:
public IQueryable<Article> ActiveArticles { get { return this.Articles.Where(x => x.is_removed == 0); } }