ホームページ  >  記事  >  データベース  >  EF_MySQL で MySQL を使用する方法と一般的な問題

EF_MySQL で MySQL を使用する方法と一般的な問題

WBOY
WBOYオリジナル
2016-07-06 13:32:431070ブラウズ

オンラインでスペースやデータベースをレンタルする必要がある場合、MySQL の方が安いため、SQL サーバーを MySQL に変換したい場合があります...

注: Mysql をインストールするときは、utf8 として設定されたテキストを選択する必要があります。そうしないと、中国語を使用できなくなります (現在、データベースを作成するときに utf8 を使用することもできますが、EF が生成するときにそれを設定する方法がわかりません)データベースです。専門家にアドバイスをいただければ幸いです)

1.プロジェクト内のmysqlのEFパッケージを参照します

NuGet パッケージマネージャー経由でインストール: EntityFramework6.1.3、MySql.Data.Entity6.9.8

nuget コマンドラインを使用して参加することもできます:

インストールパッケージ MySql.Data.Entity

2. 新しい関連クラスを作成します

1. 新しいユーザーエンティティクラスを作成します

インスタンスのフィールド長を定義します。定義されていない場合、「指定されたキーが長すぎます。最大キー長は 767 バイトです」というエラーが発生します。これは、文字列タイプが mysql に直接マッピングされているためです。 mysql は最大 767 バイトをサポートします。

リーリー

2. 新しい MyContext クラスを作成します

そして、MySql [DbConfigurationType(typeof(MySqlEFConfiguration))] で実装する方法を説明します

リーリー

3. テストコードを書く

リーリー

3. Web.config を設定します

次のコードを に追加します:

リーリー

完全な web.config は次のとおりです:

リーリー

最後にプログラムを実行してデータベースの自動作成を完了します

よくある質問

•エラー メッセージが表示されます: 指定されたキーが長すぎます;最大キー長は 767 バイトです

1) エンティティの文字列型属性に長さが設定されているかどうかを確認します

2) MyContext クラスが mysql データ型 [DbConfigurationType(typeof(MySqlEFConfiguration))] として生成されるように宣言されているかどうか

•エラー メッセージが表示されます: データベースにモデルのメタデータが含まれていないため、モデルの互換性を確認できません

生成されたデータベースを削除し、プログラムを再実行します

•エラー メッセージが表示されます: シーケンスには一致する要素が含まれていません

チェックしてください:

例: 1.

リーリー

2.[Column(TypeName="VARCHAR(254)")] public string ColumnName { set; } この定義を次のように変更します。 [MaxLength(254)] [Column(TypeName="VARCHAR")] public string ColumnName { get; set; }3. (次のコードはこの方法では使用しないためテストされていません。次の記事でテストします)

リーリー

次のように変更されました:

リーリー

.WithMany() は .WithOptional() に置き換えられました

上記は、エディターが紹介した EF での MySQL の使用方法と一般的な問題の全体的な説明です。ご質問がある場合は、メッセージを残してください。エディターが返信します。間に合うように。ウェブサイトをご利用いただき、誠にありがとうございます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。