C# 不确定必须传递什么objectContext

C# 不确定必须传递什么objectContext,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有: namespace Zinc.Repositories.EF.Scorm { public class ScormModuleRepository : Repository<ScormModule>, IScormModuleRepository { #region Constructor /// <summary> /// Initializes a new instance of the <see cref="ScormModuleRepository

我有:

namespace Zinc.Repositories.EF.Scorm
{
public class ScormModuleRepository : Repository<ScormModule>, IScormModuleRepository
{
#region Constructor

/// <summary>
/// Initializes a new instance of the <see cref="ScormModuleRepository"/> class.
/// </summary>
/// <param name="objectContext">The object context.</param>
public ScormModuleRepository(ObjectContext objectContext)
  : base(objectContext)
{

}

#endregion

/// <summary>
/// Clear all records (for user and selected scorm module) from the scorm.userscormmoduledata and scorm.userscormmoduleassessment tables.
/// </summary>
/// <param name="id"></param>
/// <param name="userScormModuleId"></param>
public void ResetModule(int id, int userScormModuleId, int currentUser)
{
  using (SqlConnection conn = new SqlConnection(ZincModelContainer.CONNECTIONSTRING))
  {
    using (SqlCommand cmd = conn.CreateCommand())
    {
      conn.Open();
      cmd.CommandType = System.Data.CommandType.StoredProcedure;
      cmd.CommandText = "[Zinc].[ResetUserScormModuleData]";

      SqlParameter param = new SqlParameter("@userId", System.Data.SqlDbType.Int);
      param.Value = id;
      cmd.Parameters.Add(param);

      SqlParameter param2 = new SqlParameter("@userScormModuleId", System.Data.SqlDbType.Int);
      param2.Value = userScormModuleId;
      cmd.Parameters.Add(param2);

      SqlParameter param3 = new SqlParameter("@currentUser", System.Data.SqlDbType.Int);
      param3.Value = currentUser;
      cmd.Parameters.Add(param3);

      cmd.ExecuteNonQuery();
    }
  }
}
namespace.Repositories.EF.Scorm
{
公共类ScormModuleRepository:Repository,IScormModuleRepository
{
#区域构造函数
/// 
///初始化类的新实例。
/// 
///对象上下文。
公共存储库(ObjectContext ObjectContext)
:base(objectContext)
{
}
#端区
/// 
///从scorm.userscormmoduledata和scorm.userscormmoduleassessment表中清除所有记录(针对用户和选定的scorm模块)。
/// 
/// 
/// 
public void ResetModule(int-id,int-userScormModuleId,int-currentUser)
{
使用(SqlConnection conn=newsqlconnection(ZincModelContainer.CONNECTIONSTRING))
{
使用(SqlCommand cmd=conn.CreateCommand())
{
conn.Open();
cmd.CommandType=System.Data.CommandType.StoredProcess;
cmd.CommandText=“[ZINK].[ResetUserScormModuleData]”;
SqlParameter param=newsqlparameter(“@userId”,System.Data.SqlDbType.Int);
参数值=id;
cmd.Parameters.Add(param);
SqlParameter param2=新的SqlParameter(“@userScormModuleId”,System.Data.SqlDbType.Int);
param2.Value=userScormModuleId;
cmd.Parameters.Add(param2);
SqlParameter param3=新的SqlParameter(“@currentUser”,System.Data.SqlDbType.Int);
参数3.值=当前用户;
cmd.Parameters.Add(param3);
cmd.ExecuteNonQuery();
}
}
}
在我的控制器中,我有:

[HttpGet]
public ActionResult UserDetails(int id)
{
  var user = ZincService.GetUserForId(id);
  if (user == null || user.Customer.CustomerId != CurrentCustomer.CustomerId)
    return DataNotFound();

  ManageUserViewModel viewModel = new ManageUserViewModel();
  viewModel.User = user;
  viewModel.IsLockedOut = MembershipService.IsUserLocked(user.Email);
  viewModel.IsActivated = user.DateTimeActivated.HasValue && MembershipService.IsUserApproved(user.Email);
  viewModel.IsArchived = user.IsArchived;
  var scormModuleRepository = new ScormModuleRepository();
  var trainingService = new Zinc.ServiceImplementations.TrainingService(scormModuleRepository);
  IEnumerable<UserTrainingDataModel> ids =  trainingService.GetTrainingModulesForUser(user.UserId);
  viewModel.TrainingModules = ids;

  return View(viewModel);
}
[HttpGet]
公共操作结果用户详细信息(int-id)
{
var user=ZincService.GetUserForId(id);
if(user==null | | user.Customer.CustomerId!=CurrentCustomer.CustomerId)
返回DataNotFound();
ManageUserViewModel viewModel=新的ManageUserViewModel();
viewModel.User=User;
viewModel.IsLockedOut=MembershipService.IsUserLocked(user.Email);
viewModel.IsActivated=user.DateTimeActivated.HasValue&&MembershipService.IsUserApproved(user.Email);
viewModel.IsArchived=user.IsArchived;
var scormModuleRepository=new scormModuleRepository();
var trainingService=new zn.serviceemplementations.trainingService(scormModuleRepository);
IEnumerable ids=trainingService.GetTrainingModulesForUser(user.UserId);
viewModel.TrainingModules=ids;
返回视图(viewModel);
}
我在以下行中得到一个错误:
var scormModuleRepository=new scormModuleRepository();
声明:

错误2“Zinc.Repositories.EF.Scorm.ScormModuleRepository”不存在 包含接受0的构造函数 参数C:\TFSPreview\Zinc\Web\Project\Areas\User\Controllers\ManageController.cs 102 35 Zinc.Web


我必须在这里传递什么类型的ObjectContext?

是的,您必须将
ObjectContext
的实例传递给
ScormModuleRepository

// get context
ObjectContext objectContext = ....;
var repository = new ScormModuleRepository(objectContext);