2010-09-10 93 views
1

數據訪問類庫所以我有什麼從我的LINQ返回查詢實體

我做一個LINQ到實體調用

我結束了一個單行有我的資料表對象。

我應該從我的類庫方法返回什麼?

我認爲這將是很酷的返回TableData對象,但我看到,如果您對其進行更改並調用一個保存,它實際上更新數據庫,我不想在我的類庫之外。

人們通常返回什麼作爲他們的結果對象?

回答

1

如果將EF跟蹤對象的狀態設置爲Detached,則更改將不會傳播到數據庫。

2

如果您試圖遵循n層架構,我的建議是使用自我追蹤實體T4模板。

  1. 打開您的.edmx
  2. 右鍵點擊你的模型的可視化視圖的enpty空間的地方,並選擇「添加代碼生成項目」
  3. 選擇自追蹤模板

然後,您的模型將成爲您想從存儲庫返回的內容,並且在您要將它們留存至數據庫時,會跟蹤您對實體所做的更改。

0

這是一個偉大的問題,因爲我真的指出了擔憂的分離。一方面,您希望將「原生」數據返回考試或其他任何方面。但另一方面,你可能不需要所有的'實時數據包袱'。

我認爲這是數據傳輸對象可以發揮作用的地方。我甚至已經爲定義具有隻讀屬性的DTO的接口。 '我回來'是由我所要求的--IDTO,DTO或邏輯實體定義的,因爲某些業務層對象可以使用DTO。

我不使用EF,而是在我們自己的ORM-ish DAL中,這正是它的工作原理 - 工廠和服務是通用的,並返回所要求的內容。不想擔心編輯?詢問沒有任何可寫屬性的接口。

相關問題