我正在使用StructureMap进行依赖项解析。我面临着一个我不知道如何解决的问题,因为我理解的表单发布的唯一方法是最终没有依赖注入,否定了我在项目中使用StructureMap的全部本质。
错误是我的IdbContext模型中没有Add
方法。以下是我的方法。
我有一个名为Module的模型定义如下
public class Module
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual DateTime? DateCreated { get; set; }
public virtual string ModuleDescription { get; set; }
}
和界面定义如下。
public interface ISolnetDataSource
{
IQueryable<Module> Modules { get; }
void Save();
}
如下所示的DbContext
public class CMSDB : DbContext, ISolnetDataSource
{
public CMSDB() : base("DefaultConnection")
{
}
public DbSet<Module> Modules { get; set; }
void ISolnetDataSource.Save()
{
SaveChanges();
}
IQueryable<Module> ISolnetDataSource.Modules
{
get { return Modules; }
}
}
我的控制器定义为
[HttpPost]
public ActionResult Index(CreateModulesViewModels module)
{
ViewBag.ListModule = _db.Modules.ToList();
if (ModelState.IsValid)
{
var model = new CreateModulesViewModels();
var CreateModule = new Module();
CreateModule.Name = module.Name;
CreateModule.ModuleDescription = module.ModuleDescription;
CreateModule.DateCreated = DateTime.Now;
//_db.modules.Add(CreateModule);
_db.Save();
return View(model);
}
return View(module);
}
我遇到的挑战是我无法_db.modules.Add(CreateModule)
(控制器中的注释行)以添加新记录。我做错了什么。我想使用适用的最佳方法来做到这一点。
答案 0 :(得分:0)
怎么样:
_db.modules.Entry(CreateModule).State = System.Data.EntityState.Added;