エンティティフレームワークを使用する場合、リポジトリをコントローラに挿入するのは悪い習慣ですか?私がサービスしている場合たとえばリポジトリはコンストラクタを介して注入するか、または?
は:
public void CreateDog(string name, IMyDbContext myDbContext)
{
using(myDbContext)
{
//create a dog using the myDbContext
}
}
:
public class DogService
{
IMyDbContext _myDbContext;
public DogService(IMyDbContext myDbContext)
{
_myDbContext = myDbContext;
}
public void CreateDog(string name)
{
//create a dog using the myDbContext
}
}
を我々が明示的にリポジトリを処分されていない、そしてそれを行うには良いだろうので、上記のは悪い習慣だろうmydbcontextのstucture:私はを処分するにはどうすればよい
public class MyDbContext : DbContext, IMyDbContext {}
myDbContext?
通常、コンテキストを「挿入」しません。コンテキストが作成され、使用され、破棄されます。より一般的には、_repository_などが注入され、コンテキストが使用されます。 –
ありがとうございました。ご質問ありがとうございました –
もう一つの質問に答えるために、ディスポーザブルオブジェクトが何かを作成するのが一般的です。別のクラスに注入すると、複雑になります。 –