实体框架查询和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属性的情况下进行此查询?

实体框架查询和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); } }