LINQと.dbmlファイルを使用してプログラムを作成する場合、コンテキストは1つのみです。しかし、MVCサイトを行うと、各エンティティごとに別々のコンテキストがあるように思えます(これは、MVCチュートリアルでは、「ムービー」コンテキストを使用して、どのように行うかを示しています)。なぜ複数のDbContextクラスですか?
私が持っている:
public class AccountsContext : DbContext
{
public AccountsContext()
: base("DefaultConnection")
{
}
public DbSet<Account> Accounts { get; set; }
}
そして、私が持っている:
public class ClientsContext : DbContext
{
public ClientsContext()
: base("DefaultConnection")
{
}
public DbSet<Client> Clients { get; set; }
}
私はこれらを呼び出すと、私は次のように、別々のコンテキストを作成する必要があります。
private AccountsContext db = new AccountsContext();
private ClientsContext clientsContext = new ClientsContext();
...私はLINQを使用するときに、単一のデータベースオブジェクトをインスタンス化するだけでよいことを知っているので、どちらも厄介なことです。
contextblを1つだけ使用する方法はありますか?これはお勧めですか?
ムービーMVCの例は、具体的かつ意図的に複数のコンテキストを使用しています。 http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/adding-a-model。なぜ、私は知らない。たぶん、それが可能であることを説明するだけです。非常に大規模なアプリケーションでは、これは望ましいことです。企業の各部門、またはおそらくそれぞれの物理データベースのコンテキストを作成することができます。 –
それには正当な理由があるかどうか知っていますか?それで、OPは、その例のために、そうしなければならないと思っていますか? –
それは私の推測だろう。 –