我知道围绕此错误有很多主题,但我的团队现在的情况有点不同。
我们正在处理一个较旧的项目,并希望简化它。除此之外,新程序在技术上应该不再需要SQL CE。但是,目前它仍然需要安装SQL CE,我们正在尝试找出原因。
我们已经尝试从项目的所有子项目中删除所有依赖项和包,例如Microsoft.SqlServer.Compact和EntityFramework.SqlServerCompact,但是我们仍然在项目输出的网站的某些页面上收到以下错误:
2018-01-17 06:49:18,217 ERROR - Could not select provider.
2018-01-17 06:49:18,217 ERROR - An exception occurred while initializing the database. See the InnerException for details.
2018-01-17 06:49:18,219 DEBUG - at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()
at System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(InternalContext c)
at System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
at System.Linq.Queryable.Select[TSource,TResult](IQueryable`1 source, Expression`1 selector)
at FGCI.Database.EntityFramework.FGEntityTable`1.get_Provider()
2018-01-17 06:49:18,219 ERROR - Inner Exception:
2018-01-17 06:49:18,219 ERROR - Schema specified is not valid. Errors:
(0,0) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlServerCe.4.0'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
2018-01-17 06:49:18,219 DEBUG - at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection.Loader.ThrowOnNonWarningErrors()
at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths)
at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection.Loader..ctor(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths, Boolean throwOnError, IDbDependencyResolver resolver)
at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, IDbDependencyResolver resolver, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerInvariantName, String& providerManifestToken, Memoizer`2& cachedCTypeFunction)
at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders)
at System.Data.Entity.Utilities.XDocumentExtensions.GetStorageMappingItemCollection(XDocument model, DbProviderInfo& providerInfo)
at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(XDocument sourceModel, XDocument targetModel, Lazy`1 modificationCommandTreeGenerator, MigrationSqlGenerator migrationSqlGenerator, String sourceModelVersion, String targetModelVersion)
at System.Data.Entity.Migrations.DbMigrator.IsModelOutOfDate(XDocument model, DbMigration lastMigration)
at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration)
at System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClassc.<Update>b__b()
at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
at System.Data.Entity.MigrateDatabaseToLatestVersion`2.InitializeDatabase(TContext context)
at System.Data.Entity.Internal.InternalContext.<>c__DisplayClassa`1.<CreateInitializationAction>b__9()
at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
2018-01-17 06:49:18,220 DEBUG - Out: Entity_Table'.get_Provider
无论如何,该程序不再需要SQLCE。然而,它看起来好像在某处仍然有一些SQL CE的引用,但我找不到它,而且我在这里结束了。
有没有人对我们如何解决这个问题有任何建议?再一次,我们的目标是找到并摆脱项目在SQL CE上的所有遗留依赖项。
更新:
我在项目中找到了以下EMX相关文件。我也无法在这里弄出任何可疑的东西,但也许我错过了什么。
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure
-- --------------------------------------------------
-- Date Created: 07/15/2015 19:11:12
-- Generated from EDMX file: C:\Users\██████\Source\Workspaces\██████\Main\██████\Implementation\Net\██████\MetaDataModel.edmx
-- --------------------------------------------------
SET QUOTED_IDENTIFIER OFF;
GO
USE [██████];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------
-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------
IF OBJECT_ID(N'[dbo].[MetaData]', 'U') IS NOT NULL
DROP TABLE [dbo].[MetaData];
GO
-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------
-- Creating table 'MetaData'
CREATE TABLE [dbo].[MetaData] (
[IntegratorId] varchar(100) NOT NULL,
[Name] int NOT NULL,
[Count] int NOT NULL,
[Value] varchar(255) NOT NULL
);
GO
-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------
-- Creating primary key on [IntegratorId], [Name], [Count] in table 'MetaData'
ALTER TABLE [dbo].[MetaData]
ADD CONSTRAINT [PK_MetaData]
PRIMARY KEY CLUSTERED ([IntegratorId], [Name], [Count] ASC);
GO
-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------
-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------
答案 0 :(得分:0)
您可能有一个包含SQLCE提供程序名称的EDMX文件,您需要为SQL Server重建该文件