使用实体框架插入数据库时​​出错

时间:2014-08-15 14:11:27

标签: c# entity-framework insert foreign-keys

我会生气。我有一个如此简单的代码,但它不起作用。

我测试了所有的东西,我无法理解原因。

代码是这样的:

FataDBEntities model = new FataDBEntities();

UserAccount nua = new UserAccount();

nua.username = username;
nua.pass = password;
nua.email = mailaddress;
nua.activated = false;

model.UserAccounts.Add(nua);

try
{
    model.SaveChanges();
}
catch (Exception)
{
    throw;
}

string activationCode;

try
{
    activationCode = genActivationCodeAndMail(mailaddress, username);
}
catch (Exception)
{
    throw;
}

ActivationCode ac = new ActivationCode();

ac.code = activationCode;
ac.expiration_date = DateTime.Now.AddDays(1);
nua = model.UserAccounts.Single(p => p.username == username);
ac.wichUser = nua.ID;

model.ActivationCodes.Add(ac);

try
{
    model.SaveChanges();
}
catch (Exception)
{
    throw;
}

,模型是这样的:

enter image description here

错误是第二次插入...第一次正常工作。

  

其他信息:无法更新EntitySet'Dec ActivationCode',因为它具有DefiningQuery,并且元素中不存在支持当前操作的元素。

请帮忙......

1 个答案:

答案 0 :(得分:3)

根据this SO article,如果从数据库视图,自定义数据库查询映射实体集或者数据库表没有主键,则会发生此错误。

之前发生过这种情况,我使用同一篇文章解决了这个问题:)