簡體   English   中英

如何從存在的.edmx文件連接到數據庫?

[英]How to connect to database from exist .edmx file?

我們的構建工程師已離開另一家公司。

他把他的項目移交給我。 但我通常編碼不使用EF,所以我不知道什么,他使用像EntityDataModel.edmx這樣的實體文件包含所有數據。

我不知道如何連接到這個。 我通常通過connectionString = ...etc連接到SQL Server。 我也在他的應用程序中找到這個字符串,如:

<connectionStrings><add name="PCApp_TaxitechEntities" connectionString="metadata=res://*/EntityModel.EntityDataModel.csdl|res://*/EntityModel.EntityDataModel.ssdl|res://*/EntityModel.EntityDataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SDDMS-010\\SQLEXPRESS;initial catalog=PCApp_Taxitech;user id=sa;password=;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

Edmx不包含任何數據,它只是模型定義文件。 它定義了存儲模型(數據庫模式),概念模​​型(您的類)以及它們如何相互映射。

數據仍存儲在底層DBMS中。 在您的情況下,數據庫應位於名為SDDMS-010的計算機上,該計算機運行名為SQLEXPRESS的MS SqL Server實例和名為PCApp_Taxitech的數據庫。 所以你應該首先訪問該數據庫。

如果您不關心數據,可以從概念模型生成存儲:

https://msdn.microsoft.com/en-us/library/dd456815(v=vs.100).aspx

在交付現有項目時,您應該做的第一件事就是熟悉該項目中使用的主要工具。 您不會非常成功地在基於實體框架等重要工具的項目上進行攻擊,而無需花費一些時間來了解該工具。 打開包含EntityDataModel.edmx文件的項目,查看引用,查看正在使用的EntityFramework版本,選擇您喜歡的學習方法(書籍,視頻,博客文章,等等),並挖掘投入所需的時間學習如何使用該工具。

但那不是你問的問題。

app.config文件的這一部分提供了您需要的線索:

data source=SDDMS-010\SQLEXPRESS;initial catalog=PCApp_Taxitech;user id=sa;password=(redacted);
  • 您正在尋找名為PCApp_Taxitech的數據庫
  • 托管在Microsoft SQL Server Express中(不是您熟悉的工具?花點時間閱讀它)
  • 托管在名為SDDMS-010的機器上
  • 您具有登錄憑據:user id = sa,password =(編輯)

如果您可以訪問SDDMS-010機器,那么您就可以開展業務了。 您可以在SQL Server Management Studio中打開數據庫(服務器名稱:SDDMS-010 \\ SQLEXPRESS,身份驗證:SQL Server身份驗證,用戶名:sa,密碼:(編輯))並開始瀏覽。

如果您無權訪問該計算機,Entity Framework可以為您創建數據庫。

  1. 安裝SQL Server Express

  2. 找到包含EntityModel.edmx文件的項目,打開app.config,然后編輯連接字符串。 設置數據源,用戶標識和密碼以匹配您安裝的SQL Express實例。

  3. 雙擊Visual Studio中的EntityModel.edmx文件。 您應該看到實體模型圖。

  4. 右鍵單擊圖表上某處的空白區域。 選擇“從模型生成數據庫”,然后單擊出現的對話框中的選項。

  5. Visual Studio完成數據庫創建后,您現在可以使用SQL Server Management Studio連接到新安裝的數據庫實例,並開始在數據庫中進行瀏覽。

  6. 如果您的數據庫需要一些種子數據,您可能需要獲取有關如何在新數據庫中正確填充種子數據的一些項目特定信息。

因此,這將為您提供一個使用SSMS的數據庫。 就代碼連接而言,如果不首先熟悉Entity Framework,您很快就會失去運氣。 但總的來說,它是這樣的:

  1. 如果.edmx文件位於與可執行文件不同的項目中,則可能需要編輯可執行文件項目中的app.config文件。 設置數據源,初始目錄,用戶ID和密碼以匹配您的數據庫。

  2. 在EntityModel.edmx文件下,查找以.Context.tt結尾的文件。 在該文件下,查找以.Context.cs結尾的文件。 打開那個文件。

  3. 查找從DbContext派生的類。

  4. 創建該類的實例,並使用Linq查詢來訪問該類提供的數據。

例如,您的類可能如下所示:

public partial class MyDataContext : DbContext
{
    public MyDataContext()
        : base("name=MyDataContext")

    public virtual DbSet<MyEntity> MyEntities { get; set; }
}

您可以使用以下代碼選擇所有MyEntities:

var context = new MyDataContext();
var data = from e in context.MyEntities
           select e;

一旦超過元數據屬性(這只是用於元數據和映射的管道分隔的資源列表),它就是常規連接字符串。 在應用程序中可能存在類似於以下的代碼:

var db = new EntityModel("PCApp_TaxitechEntities"); 

這是打開與db的連接

暫無
暫無

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

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