イムthis Scott Allen tutorialヘルプは
私の現在のSqlUnitOfWorkを使用したUnitOfWorkパターンを実装しようとすることはfolowing
public class SqlUnitOfWork : IUnitOfWork {
public SqlUnitOfWork() {
var connectionString =
ConfigurationManager
.ConnectionStrings[ConnectionStringName]
.ConnectionString;
_context = new ObjectContext(connectionString);
_context.ContextOptions.LazyLoadingEnabled = true;
}
public IRepository<PhysicalTest> PhysicalTests
{
get {
if (_physicalTests == null)
{
_physicalTests = new SqlRepository<PhysicalTest>(_context);
}
return _physicalTests;
}
}
public IRepository<EHR> EHRs
{
get
{
if (_EHRs == null)
{
_EHRs = new SqlRepository<EHR>(_context);
}
return _EHRs;
}
}
public void Commit() {
_context.SaveChanges();
}
SqlRepository<PhysicalTest> _physicalTests = null;
SqlRepository<EHR> _EHRs = null;
readonly ObjectContext _context;
const string ConnectionStringName = "default";
}
で、私の現在の接続文字列は、次の
<add name="default" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;MultipleActiveResultSets=True; initial catalog=MyAppDB" providerName="System.Data.SqlClient" />
です
mvcscaffoldingで作成されたコントローラーを使用しているコントローラーはうまく動作しますが、作業単位(whi何らかの理由でchは、MyAppDBContext()インスタンスを使用するのではなく、パラメータとしてconnectrion文字列を必要とします。
私は次のコードでcontrollr内部のアクションを呼び出すしようとすると、私が取得エラー:
public class PhysicalTestsController : Controller
{
private IUnitOfWork unitOfWork;
private IRepository<EHR> ehrRepository;
public PhysicalTestsController(IUnitOfWork unit)
{
unitOfWork = unit;
ehrRepository = unitOfWork.EHRs;
}
public ActionResult Index(int ehrId, int? page)
{
EHR ehr = ehrRepository.FindById(ehrId);
if (ehr.UserName != User.Identity.Name)
return View("Invalid Owner");
const int pageSize = 5;
var physicaltests = ehr.PhysicalTests.OrderByDescending(test => test.CreationDate);
List<PhysicalTestListItem> physicalTestsVM = new List<PhysicalTestListItem>();
Mapper.Map(physicaltests, physicalTestsVM);
var paginatedTests = new PaginatedList<PhysicalTestListItem>(physicalTestsVM, page ?? 0, pageSize);
return View(paginatedTests);
}
}
はあなたがObjectContext
ないDbContext
を使用しているこの1
私はあなたの答えをありがとう....あなたは私の答えを見ていただきたいですか? ..私はちょうど私の質問に提供したコードを保持する必要がありますと私は質問を明確にする必要がありますか? connectionstringまたはDbContextを使用して私の答えでコードを使用する.... – ignaciofuentes