2012-09-24 59 views
3

我不得不爲我正在編寫的基於EF的應用程序使用傳統的SQL Server 2000數據庫。表格已經存在,所以我需要生成Entities圖層。我可以使用MySQL和SQL Server的最新版本在VS2010做到這一點,而不是2000年。實體框架:如何處理edmgen.exe的輸出?

要解決這個問題,我也跟着一些教程解釋如何使用edmgen.exe生成cslmsdlssdl文件。

這工作正常。我現在在例如c:\temp

請有人能告訴我如何處理這些文件?我想實體框架 - 如果我寫了一個簡單的控制檯應用程序。我能以某種方式從這些文件創建一個'ADO.NET實體數據模型',所以如果我一直使用VS2010,我會得到什麼?

感謝

回答

2

我得到它的工作,這裏是我做過什麼

1)使用edmgen.exe產生在我的問題

"C:\windows\Microsoft.NET\Framework\v4.0.30319\edmgen.exe" /mode:fullgeneration /c:"Data Source=<your_server_here>; Initial Catalog=<your_catalog_here>; UID=<username>;PWD=<password>" /project:<vs2010_project_name> /entitycontainer:<project_name>Entities /namespace:<project_name>Model /language:CSharpEntityFramework 

2中提到的文件),請按照以下說明「如何:使用Entity Designer CTP2中現有的CSDL/MSL/SSDL文件「 - 它實際上適用於VS2008,但它也適用於我。

http://blogs.msdn.com/b/dsimmons/archive/2007/12/07/how-to-use-your-existing-csdl-msl-ssdl-files-in-the-entity-designer-ctp2.aspx

3)我在我的舊的數據庫沒有主鍵,所以我按照這些指令還曾

http://pratapreddypilaka.blogspot.in/2012/04/entity-framework-adding-datatable-with.html

0

這些文件中引用EF's connection string和EF使用它們在運行時創建一個映射,但它仍然無法正常工作,因爲SQL Server 2000是不是EF(至少EF 4.0及更高版本)的支持。 EF可以生成SQL Server 2000不支持的SQL,並且您將在運行時獲得異常。

+0

感謝拉吉斯拉夫進一步的問題。然而,一位同事寫了另一個與同一個數據庫通信的EF應用程序(他現在已經離開了)。他的應用程序有效但是,我知道他由於您提到的不兼容性而出現了一些問題。他設法解決它們,並讓它工作。在他的筆記中,他提到他使用了edmgen.exe,這是我爲什麼試圖以相同的方式使用它。我想我幾乎在那裏與csl,msdl和ssdl文件。我只需要知道如何在VS2010中將它們導入到我的項目中。任何想法我可以做到這一點? – Richard

+0

如果您需要導入它們,您將只使用Add Existing Item和其他任何文件一樣,並將它們設置爲複製到輸出目錄。您還將在鏈接中提到的連接字符串中使用它們。您不會從這些文件獲得設計人員支持。 –

+0

是的,我意識到設計師不支持這樣做(因此使用edmgen.exe),但不幸的是我沒有選擇使用SQL 2000,所以我必須嘗試使它工作。我會試一試你的建議並回報。感謝您的幫助 - 我對EF完全陌生,所以我能得到的任何幫助都非常感謝! – Richard