我將MySQL項目的數據庫連接更改爲從MySQL目標SQL Server。但是,試圖運行Update-Database -StartProjectName ProjectName
針對SQL Server中的數據庫時,我收到以下錯誤實體框架不斷嘗試連接到舊的ADO.NET提供程序,儘管它已被更改
指定的架構無效。錯誤:(0,0):錯誤0152:沒有實體 找到ADO.NET提供程序的框架提供程序,其名稱不變爲 'MySql.Data.MySqlClient'。確保提供程序在應用程序配置文件的 'entityFramework'部分中註冊。有關更多信息,請參閱 http://go.microsoft.com/fwlink/?LinkId=260882。
所以,我想,以確保我的項目是免費的MySQL
的- 使用Ctrl + F,搜索所有MySQL關鍵字:沒有發現。通過NuGet包管理器
- 卸載MySQL的包
爲什麼實體框架不斷地問我對MySQL提供程序時,我已經清楚地表明,它應該在配置文件中使用默認的MS SQL供應商?
這是我的配置文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="Connection" connectionString="Data Source=SQLSERVER123;Database=DB123;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
這是我的DbContext文件:
using System;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
namespace ProjectName.MSSQL
{
public class ProjectNameContext:DbContext
{
public ProjectNameContext()
: base("Connection")
{
}
public static ProjectNameContext Create()
{
return new ProjectNameContext();
}
public DbSet<Users> Users { get; set; }
}
}
這是一個代碼遷移第一?嘗試刪除Migrations目錄中的所有先前的遷移代碼,因爲EF可能會保留以前的遷移腳本中的以前的數據庫信息。然後用SQL Server DB重新創建這些腳本,如同類似的問題:https://stackoverflow.com/questions/39605532/ef-code-first-mysql-to-sql-server。 –
您不應該刪除遷移才能使其工作。嘗試在運行遷移時顯式指定連接字符串:'Update-Database -ConnectionString「XXX」-ConnectionProviderName「System.Data.SqlClient」-StartupProject ProjectName' –
@TetsuyaYamamoto我重新安裝了實體框架,現在它似乎正常工作。謝謝! – Mark