POCO類,我按照推薦的建築路徑「編程實體框架代碼優先」提出。數據訪問層,模型層,及代碼第一實體框架
有一個數據訪問層和模型層其中兩個形成在VS.單獨的項目
模型層對我的類的業務對象。 DataAccess層具有對Model項目的引用,以便它可以爲我的每個業務對象創建上下文和DbSets。
的問題是,在模型中的一些類需要訪問數據層進行計算,但是我不能在我的模型項目中引用的數據訪問層,因爲它會創建一個循環引用。 DataAccess圖層必須引用Model圖層,以便它可以創建DbSets。 另請注意,計算是隻讀的 - 只有getter,它們不會持久化到數據庫。
我一直在尋找這一小時,並已發現有用的信息,但我想我失去了一些東西簡單? POCO類的意思很簡單,但是我的類代表了一些有非常相關但更復雜的計算的東西。
作爲一個簡單的具體的例子我有一個事務類和AccountBalance類。該交易類需要知道爲了顯示特定日期的AccountBalance - 如百分比變化(這只是一個簡單的例子):
公共類交易
{
public DateTime Date { get; set; }
public string Description { get; set; }
... etc
public double PercentageChange
{
get
{
// return TransactionAmount/AccountBalance on TransactionDate
// however Transaction has no knowledge of AccountBalance...
}
}
}
感謝
Thanks @Leon。聽起來不錯,但我仍然錯過了一些東西。這緩解了訪問問題,但我想要一個具有所有必需屬性的類(如上面的PercentageChange)。我可以通過製作公共類TransactionService:Transaction並在...中添加我的屬性來做到這一點,但數據仍然與Transaction有關,不是嗎?如果我使用_Context.Transactions.ToList()我將無法訪問我的新屬性等。如果我使額外的邏輯來獲取TransactionService類中的事務列表,我擊敗了使用EF的目的... Im困惑,謝謝你的幫助 – user1622713