簡體   English   中英

Entity Framework 根據輸入參數動態查詢表名

[英]Entity Framework query table name dynamically based on input parameter

我一直在一個項目中工作,該項目使用實體框架作為 ORM 數據模型來連接到 SQL 數據庫並檢索數據。

現在用於檢索數據的基本查詢是這樣的

ProjectDataContext dataContext = new ProjectDataContext();   

var result = (from project in dataContext.Projects
              select project).ToList();

或者在 lambda 中

List<Project> lstprojects = dataContext.Projects.Take(10);

現在我想根據一些輸入參數動態傳遞表名。 我怎樣才能做到這一點?

我目前的做法有點亂。

if(tableName = "A")
{
     List<A> lstOfA = dataContext.A.Take(10);
}
else if(tableName = "B")
{
     List<B> lstOfB = dataContext.B.Take(10);
}

等等...

我的問題是,是否有一種簡潔干凈的方法來做到這一點,而無需寫這么多,因為我知道這可能會導致將來出現性能問題。

謝謝

好的,經過一些試驗和錯誤,我已經能夠做到這樣 -

var type = Type.GetType("A");
context.Set(type).Load();
var result = context.Set(type).Local.Cast<object>().ToList();

希望它有幫助。`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM