Entity Framework ツールを使用して、最初に MySQL データベースの POCO クラスのコードをクラス ライブラリにリバース エンジニアリングしました。このクラス ライブラリを参照する MVC プロジェクトを作成し、読み取り/書き込みアクションとビューを備えたコントローラーを作成しようとしています。モデルとデータ コンテキスト クラスを設定し、[追加] をクリックすると、次のエラーが表示されます。
EntityType xxx にはキーが定義されていません。この EntityType のキーを定義します。
問題は、マップで適切にマークされていることです。
public UserApplicationMap()
{
// Primary Key
this.HasKey(t => new { t.UserID, t.AppID });
...
私はクラスでこれをやってみました:
public class UserApplication
{
[Key, Column(Order = 0)]
public int UserID { get; set; }
[Key, Column(Order = 1)]
public int AppID { get; set; }
しかし、コンパイラは Column 属性に適合し、無効としてフラグを立てました。
だから私は少し困惑しています。複合キーを使用できるのであれば、このテーブルに自動インクリメント フィールドを追加したくありません。
Visual Studio 2012、EF 5、MVC 4、および MySQL コネクタ 6.6.4 を使用しています