MySql 데이터베이스에 대해 엔티티 프레임 워크 4.4.0 (EF5) 코드의 첫 번째 마이 그 레이션을 수행했지만 추가 마이그레이션 명령을 실행할 때 항상 dbo가 prepended 됨 그래서 같은 테이블 이름에 :Entity Framework 4.4.0 코드 처음으로 MySql에서 마이 그 레이션하면 새 테이블에 dbo가 계속 추가됨
CreateTable(
"dbo.Fields",
c => new
{
FieldId = c.Int(nullable: false, identity: true),
FieldTypeId = c.Int(nullable: false),
Name = c.String(nullable: false, unicode: false),
Description = c.String(unicode: false),
CodeList = c.String(unicode: false),
Mask = c.String(unicode: false),
})
.PrimaryKey(t => t.FieldId)
.ForeignKey("dbo.FieldTypes", t => t.FieldTypeId, cascadeDelete: true)
.Index(t => t.FieldTypeId);
내가 Devart 데이터베이스 제공자를 사용하고 있는데 내 마이그레이션 구성 클래스는 다음과 같습니다
internal sealed class Configuration : DbMigrationsConfiguration<mydbcontext>
{
public Configuration()
{
// Create a custom connection to specify the database and set a SQL generator for MySql.
var connectionInfo =
MySqlConnectionInfo.CreateConnection("<<myconnectionstring>>");
TargetDatabase = connectionInfo;
SetSqlGenerator(connectionInfo.GetInvariantName(), new MySqlEntityMigrationSqlGenerator());
var config = MySqlEntityProviderConfig.Instance;
config.Workarounds.IgnoreSchemaName = true;
AutomaticMigrationsEnabled = false;
}
protected override void Seed(CloudDataSetDbContext context)
{
}
}
을 IgnoreSchemaName = 사실은 고려되지 않는 몇 가지 이유.
은 그래서 같이 web.config 파일에 Devart의 데이터베이스 공급자를 추가 :<system.data>
<DbProviderFactories>
<remove invariant="Devart.Data.MySql" />
<add name="dotConnect for MySQL" invariant="Devart.Data.MySql" description="Devart dotConnect for MySQL" type="Devart.Data.MySql.MySqlProviderFactory, Devart.Data.MySql, Version=6.80.350.0, Culture=neutral, PublicKeyToken=09af7300eec23701" />
</DbProviderFactories>
그리고 나는 또한 Devart는과 같이이 필요하기 때문에 어셈블리 리디렉션 추가 :
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
<bindingRedirect oldVersion="4.3.1.0" newVersion="4.4.0.0" />
</dependentAssembly>
아무도 나를 도울 수 있습니까? Thx, 스티븐.
정보 용 Thx 그런데 DotConnect를 버전 7.2.122로 업그레이드하여 작동시키고 있습니다. –
문제가 해결되었음을 기쁘게 생각합니다. – Devart