我正在尝试对克隆记录的操作运行MVC单元测试。当然,我们使用主记录的主键首先使用简单的DbSet.Find()
从数据库中提取它。现在我已经写了大约100个单元测试,并且98/100正在通过,其中包括测试此类交易的各个方面所需的一些...并且它们都已经过去了。
在第一步中,用户选择创建Agency
,但选择他们也想添加另一个。该页面将回发到Create
POST
控制器方法并保存。
保存完成后,程序将设计为重新路由回Create
GET
方法。从那里收集相关信息并将新模型对象发布回视图。
var result = _controlAgtTran.Create(_agency, "andAddAnother") as RedirectToRouteResult;
var message = _controlAgtTran.Create(int.Parse(result.RouteValues["id"].ToString()), null, null, null, null, null, true, result.RouteValues["msg"].ToString()) as ViewResult;
一旦我们重新路由到GET
操作,就不会发生太复杂的情况,如下所示。我们只需调用DbSet.Find(<PK>)
方法来抓取刚刚保存的对象。
AgentTransmission master = db.AgentTransmission.Find(id);
然而,每次,并且仅针对此操作,我出现以下错误消息。我已经逐步完成代码以确保id
变量不为空,我已经查询了数据库以确保它是正确的,并且我将单元测试的这部分与解决方案中的其他部分进行了比较。无法找到差异。任何帮助/建议将不胜感激。
属性“ID”是对象密钥信息的一部分,无法修改。
修改