6

我尝试将 Entity Frameworks Power Tools Reverse Engineer Code First 用于 SQLServer 数据库并收到以下错误:

System.ArgumentException:modelEntityContainerName 参数“testContext”包含无效字符。
    在 System.Data.Entity.Design.EntityModelSchemaGenerator..ctor(EntityContainer storeEntityContainer, String namespaceName, String modelEntityContainerName)
    在 Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst(项目项目)

我可以做些什么来继续或避免此错误或解决它。

谢谢。

4

2 回答 2

2

我有同样的问题。我的数据库被命名为 sots-version-005,并且代码没有转义这个名称。答案是重命名数据库,希望您处于一个容易做到的开发环境中。

我使用 SQL Management Studio,右键单击数据库,并将其重命名为“sots5”,删除除字母数字以外的所有字符。

于 2013-01-30T17:32:04.017 回答
0

我目前正在使用 VS 2013 和实体框架版本 6.1.2 并遇到相同的错误。

我在实体框架 codeplex 网站上找到了 ErikEJ 的这篇文章:http: //entityframework.codeplex.com/workitem/898#CommentContainer9

“@Greg - 此问题未在 Power Tools 中修复,但已在 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。

于 2015-01-14T16:24:37.123 回答