2016-10-26 18 views
2

私は、ASP.NET CoreプロジェクトをMicrosoft SQL ServerからMySQLに移行する作業を進めており、MySQL DBプロバイダがリリースされました(「プレリリース」)。私は、SQL Serverを使用しているときにメンバーシップにコアIDを使用していました。ASP.NETコアIDをSQL ServerからMySQLに移行する際の問題

CLRタイプのマッピングが見つかりませんでした。(MySQL Workbenchの移行ウィザードを使用して)MySQLに移行したとき、私はこのエラーを受け取りました。 CreateAsyncメソッドを実行するときに 'Microsoft.EntityFrameworkCore.Metadata.Internal.Property'

エラーは、このコードで提供されます:ここで

public IActionResult Register([FromBody]RegisterViewModel obj) 
    { 
     if (ModelState.IsValid) 
     { 
      IdentityUser user = new IdentityUser(); 
      user.UserName = obj.Username; 
      user.Email = obj.Email; 

      IdentityResult result = _userManager.CreateAsync(user, obj.Password).Result; 
     } 
    } 

は私のDbContextクラスです:

using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 
using Microsoft.EntityFrameworkCore; 

namespace PilotMaltApiCore.Models 
{ 
    public class PilotDbContext : IdentityDbContext<IdentityUser, IdentityRole, string> 
    { 
     public PilotDbContext(DbContextOptions<PilotDbContext> options) 
      : base(options) 
     { 
      //nothing here 
     } 

     public DbSet<Batch> Batches { get; set; } 
     public DbSet<Bag> Bags { get; set; } 
     public DbSet<Vendor> Vendors { get; set; } 
     public DbSet<Variety> Varieties { get; set; } 
    } 
} 

私は、SQL ServerとMySQLの間のデータ型の違いと関係があると考えていました。ここでは、SQL Serverのテーブルには、次のとおりです。

enter image description here

そしてここでは、MySQLのテーブルは、MySQL Workbenchで移行ウィザードを使用した後です: enter image description here

コードのすべてのSQLを使用した場合うまく働いた、覚えておいてくださいサーバ。あなたの助けに感謝します、ありがとう!

答えて

0

私は問題を修正utf8mb4にvarchar型のフィールドの文字セットを変更しました。

また、Sapient Guardianのバージョンの.net Core用MySqlプロバイダを使用することを選択しましたが、これはMySqlのバージョンよりもはるかに問題が少ないことが証明されています。それはhereをダウンロードすることができます。

関連する問題