我正在使用 SQL Server CE 4.0 开发 ASP.NET 网页站点。
我相信我的 SQL Server CE 4.0 数据库运行良好。无论有没有实体框架,我都可以在我的开发机器上毫无问题地连接到它。
将站点推送到服务器后,我可以在没有实体框架的情况下使用此连接字符串很好地连接到它:
<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 = (from p in db.Products
第 26 行:其中 p.ProductID == productId
第 27 行:选择 p).FirstOrDefault();源文件: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, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerManifestToken, Memoizer 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 entry) +163 System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections(String cacheKey, MetadataArtifactLoader loader, EdmItemCollection edmItemCollection, Object& entryToken) +191 System.Data.EntityClient.EntityConnection.LoadStoreItemCollections(MetadataWorkspace workspace, DbConnection storeConnection, DbProviderFactory factory, DbConnectionOptions connectionOptions, EdmItemCollection edmItemCollection, MetadataArtifactLoader artifactLoader) +246 System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections) +586 System.Data.EntityClient.EntityConnection.InitializeMetadata(DbConnection newConnection, DbConnection originalConnection, Boolean closeOriginalConnectionOnFailure) +75 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
我究竟做错了什么?