0
我使用EF 4.2,最初我爲每個實體集推出了自己的存儲庫類。正如我調查further我意識到,DbContext和IDbSet實現了我需要的工作單元和存儲庫模式。擴展EF實體檢索方法
這很好,但我也想用一些「助手」方法來返回使用除主鍵以外的常用請求屬性的特定實體。
例如,通過電子郵件和帳戶狀態而不是Id主鍵選擇員工。我的原始用戶存儲庫有這個重載。
我的問題是我應該在哪裏添加這個輔助方法?我認爲自己有以下幾種選擇:
- 添加一個域邏輯服務類型類,該方法使用dbContext,並被其他域邏輯類和方法使用。
- 擴展DbContext類以具有其他方法。
- 用自定義存儲庫替換IDbSet。
- 將dbContext包裝在每個實體集的其他Repository類中,並將方法添加到用戶特定的方法中。
似乎每個人都有優點和缺點,但我更傾向於1或2。任何想法?
那是我的第五個選項;)我已經提取的界面與我上下文(使用T4模板),我正在使用我的域邏輯類中的這個接口。我可以/應該將它添加到界面的簽名中嗎? – 2012-02-03 17:50:28
這是擴展方法 - 它是靜態的,所以它不是任何接口的一部分。 – 2012-02-03 17:53:09