0
我正在使用StructureMap進行依賴關係解析。我遇到了一個我不知道如何解決的問題,因爲唯一的方法是製作表單發佈,我知道最終會沒有依賴注入,從而否定了在我的項目中使用StructureMap的全部本質。 錯誤是我的IdbContext模型中沒有Add
方法。以下是我的方法。DbContext和HTTPPost動作中的接口
我有定義的命名模塊型號如下
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);
}
我有這樣的挑戰是,我could'nt做_db.modules.Add(CreateModule)
(在註釋行中控制器),以添加新的記錄。我做錯了什麼。我想用最好的方法來做到這一點。
'Entry'沒有也可以。我所能訪問的只是從外觀上看的IQueryable方法。 – Peter 2014-09-20 09:07:00
所以也許只是做一個手動的SQL查詢。上下文有這個選項。 – ilans 2014-09-20 09:08:19
嗯...我想避免使用它。我想用該項目儘可能多地學習LINQ和MVC結構。 – Peter 2014-09-20 09:10:40