原則を完全に理解するための基本的な作業単位を作成しようとしています。後でリファクタリングできます。私は単にそれを機能させようとしています。困っています。
私は単純なエンティティコードを持っています:
public class Code
{
public int Id { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string Description { get; set; }
}
1つの単純なメソッドを持つCodeRepositoryがあります。
public class CodeRepository
{
public Code GetByCode(string value)
{
// Go to DB and find code. Just using a sample.
var code = new Code();
code.Type = "Dx";
code.Value = "20";
return code;
}
}
単純なUnitOfWorkクラスがあります。
public class UnitOfWork
{
private CodeRepository _codeRepository;
public CodeRepository CodeRepository
{
get
{
if (_codeRepository == null)
_codeRepository = new CodeRepository();
return _codeRepository;
}
}
public void Commit()
{
}
public void Rollback()
{
}
}
UnitOfWorkを使用してリポジトリを呼び出し、名前でコードを取得したい場合は、次のようにします。
var uow = new UnitOfWork();
var code = uow.CodeRepository.GetByCode("x");
使用するために作成された接続はどこにありますか?次にどこに行けばいいのかわからない。また、ADO.NETを使用する必要があります。
更新 以下の人々の多くは、接続をリポジトリで開く必要があると言っています。たとえば、ビューの値を取得するために3つの別々のリポジトリで3つの異なるGetByメソッドを呼び出す必要がある場合、毎回新しい接続を開きたいですか?または、単一の接続を開くことはできますか?