1

我正在尝试 MVC4,但我一直在尝试创建数据。我的代码没有向列表中添加任何内容。这是我在控制器的 HttpPost 创建方法上的代码

Script script = _db.Scripts.Single(d => d.Id == viewModel.ScriptId);
ScriptRequest scriptRequest = new ScriptRequest();
scriptRequest.Username = viewModel.Name;
scriptRequest.RequestedScript = script;
scriptRequest.Parameters = viewModel.OtherParam;
scriptRequest.DateRequested = DateTime.Today;
_db.ScriptRequests.ToList<ScriptRequest>().Add(scriptRequest);
_db.Save();
return RedirectToAction("Index", "Home");

当我调试时,_db.ScriptRequest 中没有添加任何内容。我还尝试了其他方法,例如 Concat ,但我仍然无法添加一行。这是在扩展 DbContext 类的类的定义中。

public DbSet<ScriptRequest> ScriptRequests { get; set; }

IQueryable<Parameter> IDarylToolDatasource.Parameters
{
     get { return Parameters; }
}

void IDarylToolDatasource.Save()
{
     SaveChanges();
}
4

1 回答 1

0

我认为问题出在这一行:

_db.ScriptRequests.ToList<ScriptRequest>().Add(scriptRequest);

.ToList()这一行中的方法在内存中创建了一个List<ScriptRequest>,在链的后面,您将对象添加到该内存列表中,而不是您的 dbcontext。

删除.ToList(),问题就会消失

于 2013-09-15T16:20:10.003 回答