System.ArgumentException:该modelEntityContainerName

2019-09-22 18:11发布

我试图使用实体框架的电动工具进行反向工程代码第一次对一个SQLServer数据库并收到以下错误:

System.ArgumentException:该modelEntityContainerName参数“的TestContext”包含无效的字符。
在System.Data.Entity.Design.EntityModelSchemaGenerator..ctor(EntityContainer相关storeEntityContainer,字符串namespaceName,字符串modelEntityContainerName)
在Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst(工程项目)

有什么我能做的继续或避免这种错误,或者解决它。

谢谢。

Answer 1:

我有同样的问题。 我的数据库被命名为SOTS版本-005,和代码没有逃脱的名字。 答案是重命名数据库,并希望你在一个开发环境中,很容易做到。

我用SQL Management Studio中,在数据库上右键单击,并将其更名为“sots5”,消除除字母数字的所有字符。



Answer 2:

我目前正在与VS 2013和Entity Framework版本6.1.2工作,遇到同样的错误。

我发现这个职位由ErikEJ对实体框架的CodePlex网站: http://entityframework.codeplex.com/workitem/898#CommentContainer9

“@格雷格 - 这个问题是不固定在电动工具,而是固定在6.1版本工具(代码首先从数据库)(只是SQL精简测试)”

所以,目前PowerTools的不能用于此。 然而实体框架6本身支持这一点。 只要按照这个视频这里所描述的工作流程: http://msdn.microsoft.com/en-us/data/jj200620

您添加实体数据模型项目到项目,然后选择“代码首先从数据库”。

请注意,生成的类来自哪个电动工具,就会产生一点点不同。 电动工具仅在配置数据库时使用流利的API。 在另一方面,EF向导默认使用数据注释和只在必要时使用流利的API。 然而,它也可以更改模板文件,以便只用流利的API。



文章来源: System.ArgumentException: The modelEntityContainerName parameter contains characters that are not valid