【发布时间】:2014-08-18 08:12:27
【问题描述】:
我正在创建使用 LINQ To SQL 对数据库执行所有操作的小型应用程序。
现在我在这里给出我的数据库结构的一小部分,请看一下。
所以更新语言细节我正在使用类似这样的数据上下文获取登录对象。
XVDataContext Context = new XVDataContext ();
var myQuery = from objLogIn in Context.GetTable<LogIn>() where objLogIn.Emp_Id == nEmpId select objLogIn;
在 nEmpId 中,我总是有一些价值。
所以实际上我从数据库中获取所需的记录并使用以下代码将其存储在 objUser 对象中,这并没有造成任何问题。
LogIn objUser = myQuery.First<LogIn>();
现在要更新 LanguageDetail 我正在执行以下代码,但是当我执行 SubmitChanges 行时它会引发异常。
这是我正在执行更新的代码。
LanguageDetail obj = new LanguageDetail();
foreach (string sLanguages in TextBoxLanguagesKnown.Text.Split('\n'))
{
obj.Emp_Id = objUser.Emp_Id;
obj.Language = sLanguages.Trim();
}
objUser.LanguageDetails[0] = obj;
Context.SubmitChanges();
我已经阅读了以下链接。
cannot add an entity with a key that is already in use
LINQ To SQL exception with Attach(): Cannot add an entity with a key that is alredy in use
Cannot add an entity with a key that is already in use (LINQ)
通过阅读上述链接,我发现我在 ID 字段中犯了一些错误,但我仍然无法解决。
请告诉我提出这个问题的明确理解以及我该如何解决这个问题。
编辑:
我只是想更新 LanguageDetail 表。
当我尝试使用以下代码添加新对象时,它仍然会引发异常。
objUser.LanguageDetail.Add(obj);
【问题讨论】:
标签: c# linq-to-sql