2011-09-22 59 views
1

這是一個完全是意見問題的問題。但這也可能是一個關於我身邊愚蠢的問題。它的工作方式都很好。但我想知道人們的想法。實體框架中的代碼清理

public IQueryable<User> Users { 
     get { 
      return context.Users; 
     } 
    } 

我們去那裏...那是被返回的所有用戶提供的EntityFramework方面的功能,它在我的倉庫。 context.Users是一個IObjectSet btw。

public User GetUserById(int userId) { 
     return context.Users.FirstOrDefault(u => u.UserId == userId); 
    } 

這是我的存儲庫中另一個函數的示例。正如我在這裏使用context.Users。 我可能也會這樣寫。

public User GetUserById(int userId) { 
     return Users.FirstOrDefault(u => u.UserId == userId); 
    } 

我想使用最後一個導致代碼看起來更乾淨。但是這會以任何方式影響演出?!這可能是一個愚蠢的問題......但是,我希望能與更大的項目合作,每個小細節都可以計算在內。 (我知道實體框架可能是錯誤的方式去但它不是我的呼叫)

+0

「prestanda」=「表演」? (http://www.woxikon.de/swe/prestanda.php) – Peter

+0

是的。 「prestanda」=「表演」? (對不起英文不好) – Wondermoose

回答

1

看來你似乎正在描述消費代碼和實體框架之間的間接/抽象層。我認爲這是一件好事。我實際上修改了T4 POCO模板以自動生成#1中的內容,並生成一個只返回IQueryables的接口。

許多現代的ORM現在都提供LINQ支持......並且很高興知道其餘的代碼不必知道它與之交談的是什麼ORM ......如果您決定離開實體框架在某一點。

要回答你關於性能的問題:不,我不認爲這會對性能產生負面影響。編譯後的代碼中會生成一些額外的CIL語句,但這是關於它的。

+0

感謝您的評論,沒有想到這件事,這本身就是一件好事。 – Wondermoose