Entity framework EF在生产中给我错误,而不是开发。

Entity framework EF在生产中给我错误,而不是开发。,entity-framework,entity-framework-5,Entity Framework,Entity Framework 5,生成的EF模型使用以下连接字符串。它在我的本地机器上正常工作,但是当我部署时,我得到下面的错误。我已经看过很多次引用的URL了:如果它有答案,我就看不到我的案例了 我正在粘贴下面的错误 <add name="svcodecampEntitiesAllTables" connectionString="metadata=res://*/EFModel.ModelAllTables.csdl|res://*/EFModel.ModelAllTables.ssdl|res://*/EFMod

生成的EF模型使用以下连接字符串。它在我的本地机器上正常工作,但是当我部署时,我得到下面的错误。我已经看过很多次引用的URL了:如果它有答案,我就看不到我的案例了

我正在粘贴下面的错误

  <add name="svcodecampEntitiesAllTables" connectionString="metadata=res://*/EFModel.ModelAllTables.csdl|res://*/EFModel.ModelAllTables.ssdl|res://*/EFModel.ModelAllTables.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=svcc;integrated security=True;persist security info=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

{"message":"An error has occurred.","exceptionMessage":"Unable to load the specified metadata resource.","exceptionType":"System.Data.MetadataException","stackTrace":"   at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources(String assemblyName, String resourceName, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)\r\n   at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource..ctor(String originalPath, String assemblyName, String resourceName, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)\r\n   at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)\r\n   at System.Data.Metadata.Edm.MetadataArtifactLoader.Create(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)\r\n   at System.Data.Metadata.Edm.MetadataCache.SplitPaths(String paths)\r\n   at System.Data.Common.Utils.Memoizer`2.<>c__DisplayClass2.<Evaluate>b__0()\r\n   at System.Data.Common.Utils.Memoizer`2.Result.GetValue()\r\n   at System.Data.Common.Utils.Memoizer`2.Evaluate(TArg arg)\r\n   at System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections)\r\n   at System.Data.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection()\r\n   at System.Data.Objects.ObjectContext..ctor(EntityConnection connection, Boolean isConnectionConstructor)\r\n   at System.Data.Objects.ObjectContext..ctor(EntityConnection connection)\r\n   at System.Data.Entity.Internal.InternalConnection.CreateObjectContextFromConnectionModel()\r\n   at System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel()\r\n   at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()\r\n   at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)\r\n   at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()\r\n   at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()\r\n   at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()\r\n   at System.Linq.Queryable.Select[TSource,TResult](IQueryable`1 source, Expression`1 selector)\r\n   at WebAPI.rest.AttendeesDashboardController.Get(String userSearch, Nullable`1 presentersOnly, Nullable`1 currentCodeCampYearOnly, Nullable`1 start, Nullable`1 limit) in c:\\VCProject\\SVCodeCampWeb\\WebAPI\\rest\\AttendeesDashboardController.cs:line 97\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4()\r\n   at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)"}

{“message”:“出现错误。”,“exceptionMessage”:“无法加载指定的元数据资源。”,“exceptionType”:“System.Data.MetadataException”,“stackTrace”:“at System.Data.metadata.Edm.MetadataArtificatLoaderCompositeResources.LoadResources”(字符串assemblyName,字符串resourceName,ICollection`1 uriRegistry,MetadataArtifactAssemblyResolver解析程序)\r\n位于System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource..(字符串原始路径,字符串assemblyName,字符串resourceName,ICollection`1 uriRegistry,MetadataArtifactAssemblyResolver解析程序)\r\n位于System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader(字符串路径、ExtensionCheck ExtensionCheck、字符串validExtension、ICollection`1 uriRegistry、MetadataArtifactAssemblyResolver解析器)\r\n位于System.Data.Metadata.Edm.MetadataArtifactLoader.Create(字符串路径,ExtensionCheck ExtensionCheck,字符串validExtension,ICollection`1 uriRegistry,MetadataArtifactAssemblyResolver解析器)\r\n位于System.Data.Metadata.Edm.MetadataCache.SplitPaths(字符串路径)\r\n位于System.Data.Common.Utils.Memorizer`2.c_uDisplayClass2.b_u0()\r\n位于System.Data.Common.Utils.Memorizer`2.Result.GetValue()\r\n位于System.Data.Common.Utils.Memoizer`2.Evaluate(TArg arg)\r\n位于System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(布尔初始化AllCollections)\r\n位于System.Data.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection()\r\n位于System.Data.Objects.ObjectContext(EntityConnection连接,布尔isConnectionConstructor)\r\n位于System.Data.Objects.ObjectContext..ctor(EntityConnection连接)\r\n位于System.Data.Entity.Internal.InternalConnection.CreateObjectContextFromConnectionModel()\r\n位于System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel())\r\n在System.Data.Entity.Internal.LazyInternalContext.InitializeContext()\r\n在System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get\u Provider()\r\n在System.Linq.Queryable.Select[TSource,TResult](IQueryable`1 source,Expression`1 selector)\r\n在WebAPI.rest.AttendeedAshBoardController.get(c:\\VCProject\\SVCodeCampWeb\\WebAPI\\rest\\AttendeesDashboardController.cs中的字符串userSearch,Nullable`1 presentersOnly,Nullable`1 currentCodeCampYearOnly,Nullable`1 start,Nullable`1 limit):lambda_方法处的第97行\r\n(闭包,对象,对象[])\r\n位于System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.c_uuDisplayClass13.b_uC(对象实例,对象[]方法参数)\r\n位于System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(对象实例,对象[]参数)\r\n在System.Web.Http.Controllers.ReflectedHttpActionDescriptor.c_uuDisplayClass5.b_uu4()\r\n在System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 Func,CancellationToken CancellationToken)}

我也有这个问题。我通过显式命名包含模型的程序集来修复它

因此,如果您的模型位于“Product.DAL.dll”中,而不是:

  metadata=res://*/EFModel.ModelAllTables.csdl|...
付诸表决:


对于所有3个元数据资源,我也有这个问题。我通过显式命名包含模型的程序集来修复它

因此,如果您的模型位于“Product.DAL.dll”中,而不是:

  metadata=res://*/EFModel.ModelAllTables.csdl|...
付诸表决:


对于所有3个元数据资源,必须添加对包含edmx图表的项目的引用,并更改Nunit项目中的连接字符串

改变

<add name="ContainerName" connectionString="metadata=res://*/Diagram.csdl|re.....

必须添加对包含edmx图表的项目的引用,并更改Nunit项目中的连接字符串

改变

<add name="ContainerName" connectionString="metadata=res://*/Diagram.csdl|re.....

我有相同的问题,通过运行自定义工具解决。右键单击Model.tt文件,然后单击run custom tool,并对context.tt文件和Model.edmx文件重复相同的操作。重建应用程序将正常工作。

我有相同的问题,通过运行自定义工具解决。右键单击Model.tt文件,然后单击run custom tool并对context.tt文件和Model.edmx文件重复相同的操作。重建应用程序将起作用。

下面是我的模型。不确定要替换什么*注意,确定要替换什么。我的模型:namespace WebAPI.EFModel{using System;using System.Data.Entity;using System.Data.Entity.Infrastructure;公共部分类svcodecampEntitiesAllTables:DbContext{public svcodecampEntitiesAllTables(),这篇博文解释得非常详细!)您好,Nicholas。您给出的引用与我在问题顶部提到的引用完全相同,我说我已经看过了,但它对我没有帮助。噢,对不起!您需要用包含模型
.edmx
文件的程序集的名称替换
*
s,而不是名称空间,尽管它们可能是相同的.Tr首先在您的开发机器上安装它,以确保安装正确。下面是我的模型。不完全确定要用*替换什么。注意,确定要替换什么。我的模型:namespace WebAPI.EFModel{using System;using System.Data.Entity;using System.Data.Entity.Infrastructure;公共部分类svcodecampEntitiesAllTables:DbContext{public svcodecampEntitiesAllTables(),这篇博文解释得非常详细!)嗨,尼古拉斯。你的推荐信和我在问题开头提到的完全一样