我尝试使用Entity Frameworks Power Tools反向工程代码优先用于SQLServer数据库并收到以下错误:
System.ArgumentException:modelEntityContainerName参数'testContext'包含无效的字符。
在System.Data.Entity.Design.EntityModelSchemaGenerator..ctor(EntityContainer storeEntityContainer,String namespaceName,String modelEntityContainerName)
在Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst(项目项目)
我能做些什么来继续或避免这个错误或解决它。
感谢。
答案 0 :(得分:2)
我遇到了同样的问题。我的数据库被命名为sots-version-005,代码没有转义名称。答案是重命名数据库,希望您处于易于开发的开发环境中。
我使用了SQL Management Studio,右键单击了数据库,并将其重命名为'sots5',消除了除字母数字之外的所有字符。
答案 1 :(得分:0)
我目前正在使用VS 2013和Entity框架版本6.1.2并遇到同样的错误。
我在ErikEJ上发现了关于Entity frameworks codeplex网站的这篇文章: 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。