2012-09-21 58 views
6

我試圖使用實體框架的電動工具進行反向工程代碼第一次對一個SQLServer數據庫並收到以下錯誤字符無效:System.ArgumentException:該modelEntityContainerName參數包含

System.ArgumentException: The modelEntityContainerName parameter 'testContext' contains characters that are not valid.
    at System.Data.Entity.Design.EntityModelSchemaGenerator..ctor(EntityContainer storeEntityContainer, String namespaceName, String modelEntityContainerName)
    at Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst(Project project)

有什麼我可以繼續或避免此錯誤或解決此問題。

謝謝。

回答

2

我有同樣的問題。我的數據庫被命名爲sots-version-005,並且代碼不是逃避名字。答案是重命名數據庫,並希望你處於一個容易做到的開發環境。

我使用了SQL Management Studio,右鍵單擊數據庫,並將它重命名爲'sots5',從而消除了除字母數字外的所有字符。

0

我目前正在使用VS 2013和實體框架版本6.1.2並遇到同樣的錯誤。

我發現這個職位由ErikEJ對實體框架的CodePlex網站: http://entityframework.codeplex.com/workitem/898#CommentContainer9

「@格雷格 - 這個問題是不固定在電動工具,而是固定在6.1版本工具(代碼首先從數據庫)(剛剛使用SQL Compact進行測試)「

因此,目前PowerTools不能用於此目的。 但是實體框架6本身支持這一點。 只要按照這個視頻這裏所描述的工作流程: http://msdn.microsoft.com/en-us/data/jj200620

您實體數據模型項添加到項目,然後選擇「代碼首先從數據庫」。

請注意生成的類與Power Tools創建的類有點不同。配置數據庫時,Power Tools僅使用Fluent API。 另一方面,EF嚮導默認使用數據註釋,僅在必要時才使用Fluent API。 但是,也可以更改模板文件,以便只使用Fluent API。