2

何日も前から解決しようとしている問題が 1 つありますが、適切なアプローチができません。私はEF4を使用しており、最初にObjectContextを作成したDataBase Firstを使用するアプリケーションが1つあり、DbContextジェネレーターをダウンロードして生成しました。

問題は、常に「dbo」デフォルトを使用するのではなく、アプリケーションが何らかの構成ファイルからデータベース SCHEMA を取得できるようにする必要があるということです。「OnModelCreating」オーバーロード メソッドで「ToTable」メソッド (スキーマを指定できるようにするため) を使用しようとしましたが、この記事にあるように、DataBase First を使用しているため、そのメソッドは呼び出されません。

スキーマ名を構成可能にするにはどうすればよいですか? それは可能ですか?この記事も読みました。データベースを最初にコードと組み合わせることができると書かれていますが、「OnModelCreating」メソッドを使用できない場合、その方法がわかりません。

よろしくお願いします!!!

4

1 に答える 1

0

スキーマの構成についてはわかりません。ただし、db ファースト アプローチを最初にコードに変更する場合は、DbContext コンストラクターの文字列パラメーターを変更するだけです。

EF Db が最初に作成した次の DbContext があるとします。

public class MyDbContext : DbContext
{
    public MyDbContext()
        : base("Name=DefaultConnection")
    {

    }

    // DbSets ...
}

これを次のように変更して、最初にコードとそのすべての魔法のツール (移行など) の使用を開始します。

public class MyDbContext : DbContext
{
    public MyDbContext()
        : base("YourDbFileName")
    {

    }

    // DbSets ...
}

これにより、EF はローカル マシン上の SQL Express を使用して、初期のDb が最初に作成YourDbFileNameしたような名前の web.config ファイルに新しい接続文字列を作成します。DefaultConnection

YourDbFileNameサーバーやその他のオプションに応じて ConStrを編集するだけで、そのまま続行できます。

于 2013-07-26T03:11:33.787 に答える