我正在使用SQL Server CE 4.0在ASP.NET网页站点上工作。
我相信我的SQL Server CE 4.0数据库工作正常。无论是否使用Entity Framework,我都可以在开发机器上毫无问题地连接到它。
将站点推送到服务器后,无需使用以下连接字符串的实体框架,就可以正常连接到服务器:
<add name="StarterSite"
connectionString="Data Source=|DataDirectory|\StarterSite.sdf"
providerName="System.Data.SqlServerCe.4.0" />
我的实体框架连接字符串如下所示:
<add name="StarterSiteEntities"
connectionString="metadata=res://*/App_Code.ProductModel.csdl|res://*/App_Code.ProductModel.ssdl|res://*/App_Code.ProductModel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string="data source=|DataDirectory|\StarterSite.sdf""
providerName="System.Data.EntityClient" />
当我尝试进行任何EF数据库调用时,出现以下错误消息:
“ /”应用程序中的服务器错误。
指定的架构无效。
错误:
App_Code.ProductModel.ssdl(2,88):错误0004:无法加载System.Data.SqlServerCe.Entity.dll。重新安装SQL Server Compact。说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。
异常详细信息:System.Data.MetadataException:指定的架构无效。
错误:
App_Code.ProductModel.ssdl(2,88):错误0004:无法加载System.Data.SqlServerCe.Entity.dll。重新安装SQL Server Compact。源错误:
第23行:使用(var db = new StarterSiteEntities())
第24行:{
第25行:product =(来自db中的p。Products
第26行:其中p.ProductID == productId
第27行:选择p)。源文件:c:\ sites \ www.foosite.org \ Admin-RUF \ Admin-Product-Edit.cshtml行:25
堆栈跟踪:
[MetadataException:指定的架构无效。错误:App_Code.ProductModel.ssdl(2,88):错误0004:无法加载System.Data.SqlServerCe.Entity.dll。重新安装SQL Server Compact。] System.Data.Metadata.Edm.Loader.ThrowOnNonWarningErrors()+8610213 System.Data.Metadata.Edm.Loader.LoadItems(IEnumerable 1 xmlReaders, IEnumerable
1 sourceFilePaths)+189 System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable 1 xmlReaders, IEnumerable
1 filePaths,布尔型throwOnError,DbProviderManifest&providerManifest,DbProviderFactory&providerFactory,String&providerManifestToken,2& cachedCTypeFunction) +182 System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable
备忘录1 xmlReaders,IEnumerable1 filePaths) +244 System.Data.Metadata.Edm.StoreMetadataEntry.LoadStoreCollection(EdmItemCollection edmItemCollection, MetadataArtifactLoader loader) +90 System.Data.Metadata.Edm.StoreItemCollectionLoader.LoadItemCollection(StoreMetadataEntry entry) +16 System.Data.Metadata.Edm.MetadataCache.LoadItemCollection(IItemCollectionLoader
1 itemCollectionLoader,T条目)+163 System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections(字符串cacheKey,MetadataArtifactLoader loader,EdmItemCollection edmItemCollection,Object&entryToken)+191 System.Data.EntityClient.EntityConnection.LoadStoreItemCollections(MetadataWorkspace工作区,DbConnection存储DbProviderFactory工厂,DbConnectionOptions connectionOptions,EdmItemCollection edmItemCollection,MetadataArtifactLoaderartifactLoader)+246 System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections)+586 System.Data.EntityClient.EntityConnection.InitializeMetadata(DbConnection newConnection,DbConnection originalConnection,On System.Data.EntityClient.EntityConnection.Open()+150 System.Data.Objects。ObjectContext.EnsureConnection()+75 System.Data.Objects.ObjectQuery1.GetResults(Nullable
1 forMergeOption)+41 System.Data.Objects.ObjectQuery 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +36 System.Linq.Enumerable.FirstOrDefault(IEnumerable
1源)+152 System.Data.Objects.ELinq.ObjectQueryProvider.b__1(IEnumerable 1 sequence) +41 System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable
1查询,表达式queryRoot)+59 System.Data.Objects.ELinq.ObjectQueryProvider.System。 Linq.IQueryProvider.Execute(表达式)+133 System.Data.Entity.Internal.Linq.DbQueryProvider.Execute(表达式)+87 System.Linq.Queryable.FirstOrDefault(IQueryable1 source) +251 ASP._Page_admin_ruf_Admin_Product_Edit_cshtml.Execute() in c:\sites\www.foosite.org\Admin-RUF\Admin-Product-Edit.cshtml:25 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +198 System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable
1个执行程序)+69 System.Web.WebPages.WebPage.ExecutePageHierarchy()+131 System.Web.WebPages.StartPage.RunPage()+17 System.Web.WebPages.StartPage.ExecutePageHierarchy()+64 System.Web.WebPages。 WebPageBase.ExecutePageHierarchy(WebPageContext pageContext,TextWriter writer,WebPageRenderingBase startPage)+78 System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext)+116
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.18044
我究竟做错了什么?
使用您的应用程序部署System.Data.SqlServerCe.Entity.dll,该文件位于我的PC上的C:\ Program Files(x86)\ Microsoft SQL Server Compact Edition \ v4.0 \ Desktop \ System.Data.SqlServerCe.Entity中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句