sql >> データベース >  >> RDS >> Mysql

Entity Frameworkは複数のテーブル名を作成しますが、ビューは単一のテーブル名を想定していますか?

    それで、私はそれをやるべきだと思った方法でやろうとするのをあきらめ、複数形を一斉に削除しました。確かなことはわかりませんが、問題はmysql.netコネクタのEFのサポートに関係していると思います。これが私がしたことです。

    まず、ApplicationStartメソッドにバグがありました:

    //WRONG
    //Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
    Database.SetInitializer(new myDBInitializer());
    

    次に、jgauffinの提案に従って実装しただけなので、元のコードにリストされていないOnModelCreatingベース実装の呼び出しを停止しました。

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        //DONT DO THIS ANYMORE
        //base.OnModelCreating(modelBuilder);
        //modelBuilder.Entity<Vote>().ToTable("Votes")
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }
    

    第三に、MySQL .netコネクタではEFが実際にデータベースを作成できないことをいくつかの投稿で読んだので、最初は空のDBを作成していました。これは、コネクタ6.4.4以降には当てはまらないようです。接続文字列のユーザーが新しいデータベースを作成できる限り、データベースが最初に存在しない場合は、より適切に機能します。

    一度、私は上記のすべてをしました、それはうまくいったようでした。だから今、私は少なくとも前進することができます。将来、複数形/単数形の不一致の原因を突き止めることができれば幸いです。

    時間と労力を費やしてくれた皆さんに感謝します。



    1. OracleのSQRT()関数

    2. Oracleストアドプロシージャ内でのテキストの検索

    3. SQL ServerでCHECK制約を作成する方法(T-SQLの例)

    4. phpインクルードエラーがパスを見つけられません