2012-03-11 102 views
0

即時通訊新的實體框架,我想使服務基於它,但我有一個問題is_removed attrib是在我的大多數表中的數據庫。實體框架查詢和is_removed屬性

例如我有用戶表和文章表。我可以刪除用戶和文章(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屬性爲每個查詢?

回答

0

我會創造對LINQ分離項目的實體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); } }