EF6 模型优先:指定的架构无效,错误 0040

EF6 Model First: schema specified is not valid, error 0040

我看到这个问题已经被问了很多,但是 none 的解决方案对我有帮助,因为我首先使用模型而不是代码。

我在 VS 2015 中有一个使用 EF6 的 C# 项目。我正在使用模型优先方法构建数据库,并且可以从模型成功生成 SQL 代码并在 SSMS 中生成 运行 代码。我正在使用 SQL 服务器 LocalDB。

我遇到的问题是,每当我尝试将以编程方式创建的实体添加到它所属的集合 (table) 时,我总是会收到错误消息

'System.Data.Entity.Core.MetadataException' 类型的异常发生在 mscorlib.dll 但未在用户代码中处理

附加信息:指定的架构无效。

错误: Market.ssdl(184,6):错误 0040:类型 nvarchar(max) 未使用名称空间或别名限定。只能使用原始类型而无需限定。

我正在创建的实体只有一个 属性;一个字符串(或数据库中的 nvarchar(max))。同样,我可以创建该对象,但是当我尝试在保存任何更改之前将其添加到其集合(或 table)时,出现上述错误。我什至尝试不命名名称 属性,但错误仍然存​​在。

using (var context = new MarketContainer()) { // Create data source var datasource = new DataSource() { Name = dataSourceName }; // Save data source context.DataSources.Add(datasource); }

另一个 SO 答案建议右键单击 .tt 文件并单击 "Run Custom Tool",但这没有做任何事情。

我用 MySQL 试过一次,效果很好!现在我需要移动到 SQL 服务器,但它不起作用......我已经被这个问题困扰了一个多星期,所以任何帮助都会大有帮助。

问题已解决。我正在引用包含另一个项目的实体模型的项目,并且 App.configs 不匹配。一旦我将实体项目的配置文件的内容复制到引用项目的配置文件中,一切就开始正常工作了。

希望这对我以外的人有所帮助!