0

SQL Server CE 4.0 を使用して ASP.NET Web ページ サイトに取り組んでいます。

私の SQL Server CE 4.0 データベースは正常に動作していると思います。Entity Framework の有無にかかわらず、開発マシンで問題なく接続できます。

サイトをサーバーにプッシュすると、次の接続文字列を使用して、エンティティ フレームワークなしで問題なく接続できます。

<add name="StarterSite" 
     connectionString="Data Source=|DataDirectory|\StarterSite.sdf" 
     providerName="System.Data.SqlServerCe.4.0" />

私のEntity Framework接続文字列は次のようになります。

<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=&quot;data source=|DataDirectory|\StarterSite.sdf&quot;" 
     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: using (var db = new StarterSiteEntities())
行 24: {
行 25: product = (from p in db.Products
行 26: where p.ProductID == productId
行 27: select 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, IEnumerable1 sourceFilePaths) +189 System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable 1 xmlReaders, IEnumerable1 filePaths, Boolean throwOnError、DbProviderManifest& providerManifest、DbProviderFactory& providerFactory、String& providerManifestToken、Memoizer 2& cachedCTypeFunction) +182 System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable1 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(IItemCollectionLoader1 itemCollectionLoader、T エントリ) +163 System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections(String cacheKey、MetadataArtifactLoader loader、EdmItemCollection edmItemCollection、Object& entryToken) +191 System.Data.EntityClient.EntityConnection.LoadStoreItemCollections(MetadataWorkspace ワークスペース、DbConnection storeConnection、 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(Nullable1 forMergeOption) +41 System.Data.Objects.ObjectQuery 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +36 System.Linq.Enumerable.FirstOrDefault(IEnumerable1 ソース) +152 System.Data.Objects.ELinq.ObjectQueryProvider.b__1(IEnumerable 1 sequence) +41 System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable1 クエリ、式 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(IEnumerable1 エグゼキューター) +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 ライター、WebPageRenderingBase startPage) +78 System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext) +116

バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.18044


私は何を間違っていますか?

4

1 に答える 1

1

アプリで System.Data.SqlServerCe.Entity.dll を展開します。これは、PC の C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.Entity にあります。

于 2013-10-07T16:35:00.503 に答える