我会生气。我有一个如此简单的代码,但它不起作用。
我测试了所有的东西,我无法理解原因。
代码是这样的:
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;
}
,模型是这样的:
错误是第二次插入...第一次正常工作。
其他信息:无法更新EntitySet'Dec ActivationCode',因为它具有DefiningQuery,并且元素中不存在支持当前操作的元素。
请帮忙......
答案 0 :(得分:3)
根据this SO article,如果从数据库视图,自定义数据库查询映射实体集或者数据库表没有主键,则会发生此错误。
之前发生过这种情况,我使用同一篇文章解决了这个问题:)