2009-08-24 51 views
0

我是Ef的粉絲,想要使用它,但我不一定是協會如何工作的粉絲。如果我有一個簡單的查找表,其中可能包含3行,並且通常會被視爲代碼中的枚舉,但我不喜歡我必須這樣做才能使用EF中的關聯指定值:實體框架「代碼嗅覺」問題

myEntity.MyLookup = db.MyLookups.First(ml => ml.MyLookupId == 5);

我的意思是,它不僅看起來很時髦,而且它也再次查詢數據庫,所以我可以有效地分配值「5」。我知道這也可以通過MyLookupReference設置EntityKey,但看起來更臭。

我的問題是,是否有可能擺脫員工的商店代表性,只是將所有事情都視爲我的實體的標量,因爲沒有導航屬性,並允許我在必要時進行連接?

此外,如果這是可行的,它是否有任何影響誰跟蹤或實體類似?謝謝!

回答

2

我認爲這是保持業務邏輯與數據訪問層分開的另一個原因。當然,你可能已經這樣做了。

舉一個例子,如果你有一個用戶表和一個UserTypes表。您的數據層需要處理這個問題,但業務層不需要知道它,假設您的數據適配器中有某種​​工廠方法,它接受用戶和用戶類型並將其轉換爲管理員(用於例)。

不知道這是否有幫助,只是認爲我會給出意見。

0

外鍵值是EF v1中的一個痛點。除非您準備好自己創建EntityKey,否則上述方法是唯一的方法。

EF v4.0將免除與「FK協會」的這個頭痛。 FK關聯是代表關係的可更新標量值。