簡體   English   中英

是否可以對未知數據庫表使用實體框架?

[英]Is it possible to use Entity Framework for unknown database tables?

用戶選擇一個數據庫及其表,然后將在Web應用程序中瀏覽該表。 我可以使用實體框架來實現嗎? 我知道EF是ORM框架,但是在這種情況下,我可能不會為每個選擇創建edmx文件。 即使我做到了,如何根據表動態創建POCO對象? 在這種情況下我該怎么辦? 我必須使用低級的ADO.NET嗎?

我認為在這種情況下不需要實體框架。 也許可以將EF用於類似這樣的事情,但是如果只是從數據庫中獲取可用表名列表並讓用戶選擇要查看的表的簡單情況,我將簡單地執行以下操作:

在網站上創建下拉列表,並使用查詢結果填充它:

SELECT table_name FROM INFORMATION_SCHEMA.TABLES t

然后,在用戶從下拉列表中選擇一項之后,您可以使用Ado.net綁定網格。 就像是:

string tableName = "get value from dropdown";  
DataTable dt = new DataTable();

using (SqlConnection conn = new SqlConnection("connection string here"))
{
    string sql = string.Format("select * from {0}", tableName);
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    da.Fill(dt);
}

// bind dt to your grid or gui component here.

編輯好吧,我知道您可以至少部分執行此操作。 您絕對可以讓用戶選擇數據庫/表,因為您可以向Contexts構造函數提供自己的連接字符串/ EntityConnect對象。 我不確定如何動態創建實體,我想您將不得不擁有一個已經生成了所有實體的edmx文件,或者自己從以前編寫它們。

您必須首先將EF指向每個數據庫,而不是期望EF動態地查看應用程序中的新數據庫。

暫無
暫無

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

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