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

C# EF6模型优先:指定的架构无效,错误0040,c#,sql-server,entity-framework,localdb,ef-model-first,C#,Sql Server,Entity Framework,Localdb,Ef Model First,我看到这个问题被问了很多次,但是没有一个解决方案对我有帮助,因为我使用的是模型优先,而不是代码优先 我在VS2015中有一个使用EF6的C#项目。我正在使用模型优先的方法构建一个数据库,可以成功地从模型生成SQL代码并在SSMS中运行它。我正在使用SQLServerLocalDB 我遇到的问题是,每当我试图向它所属的集合(表)中添加一个以编程方式创建的实体时,总是会出现错误 mscorlib.dll中发生“System.Data.Entity.Core.MetadataException”类型的

我看到这个问题被问了很多次,但是没有一个解决方案对我有帮助,因为我使用的是模型优先,而不是代码优先

我在VS2015中有一个使用EF6的C#项目。我正在使用模型优先的方法构建一个数据库,可以成功地从模型生成SQL代码并在SSMS中运行它。我正在使用SQLServerLocalDB

我遇到的问题是,每当我试图向它所属的集合(表)中添加一个以编程方式创建的实体时,总是会出现错误

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

其他信息:指定的架构无效

错误: Market.ssdl(184,6):错误0040:类型nvarchar(max)未使用命名空间或别名限定。只有基元类型可以在没有限定的情况下使用

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

使用(var context=new MarketContainer())
{
//创建数据源
var datasource=新数据源()
{
名称=数据源名称
};
//保存数据源
context.DataSources.Add(datasource);
}

另一个SO答案建议右键单击.tt文件并单击“运行自定义工具”,但这没有起到任何作用


我用MySQL试过一次,效果很好!现在我需要转到SQL Server,但它不起作用。。。我已经在这个问题上纠缠了一个多星期,所以真的任何帮助都会大有帮助。

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


希望这能帮助我以外的人

你有图表吗?我解决了这个问题(见下面的答案)。