属性“ID”是对象的关键信息的一部分,无法修改

时间:2014-05-02 16:17:33

标签: unit-testing entity-framework-4

我正在尝试对克隆记录的操作运行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”是对象密钥信息的一部分,无法修改。

修改

enter image description here

0 个答案:

没有答案
相关问题