我已經在這個話題上四處瀏覽了一段時間,但是我找不到一個我實際上理解的答案(或者有人問了一些足夠接近的答案)。實體框架從用戶指定的表格中選擇
問題描述: 我有多個表的數據庫,說,oranges
和bananas
。每個人都有一堆信息。其中一個屬性很常見,比如說expirationDate
。
我需要的用戶能夠查詢其中的一個到期日期(例如,apple
與id=1
)
用戶可以選擇所有的這一個GUI(組合框與表名稱和id
文本框)
我到目前爲止有: 在後臺代碼/業務邏輯,我有以下
.
.
.
if(tableName.Equals("apples"))
{
DateTime expDate = getAppleDetails(id)
}
if(tableName.Equals("oranges"))
{
//call function to select the single orangeEntry and do the rest
}
}
DateTime getAppleDetails(long id)
{
using(var db = new myContext())
{
var appleEntry = db.apples.Single(x=>x.id==id);
return appleEntry.ExpDate
}
}
我在尋找什麼: 上面的代碼告訴你如何使用更大的數據庫,我將不得不復制大量的代碼。在同一個查詢中做這件事的更好方法是什麼? 類似於db.TableNameHere.Single(x=> x.id == id)
?
這不會要求我在代碼中指定表嗎?我的意思是,在某種意義上,我將不得不通過比較字符串並根據從UI中提取的字符串所說的正確DBSet調用函數? 它確實可以顯着減少重複代碼的數量 – robotHamster
其實,我只是試着實現它,它爲我減少了代碼做得很好!非常感謝! – robotHamster