我正在尝试创建一个基本的工作单元来充分理解这些原则。我可以稍后重新考虑。我只是想让它工作。我遇到了一些麻烦。
我有一个简单的实体代码:
public class Code
{
public int Id { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string Description { get; set; }
}
我有一个带有一个简单方法的 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 方法来获取视图的值,我是否想每次都打开一个新连接?或者,我可以打开一个连接吗?