C# 使用linq to ado.net实体froamwork将记录插入具有一对多关系的两个表中

C# 使用linq to ado.net实体froamwork将记录插入具有一对多关系的两个表中,c#,linq,entity-framework-4,linq-to-entities,C#,Linq,Entity Framework 4,Linq To Entities,我有以上两个表,部门表中的PersonID是PersonalInfo表的外键。我有一个web表单,其中包含FirstName、SecondName、MobileNo和Department文本框。因此,我无法将PersonID插入部门 您能告诉我如何使用linq to entityframework将PersonalInfo的ID存储到部门的PersonID中吗 这是我的代码: PersonalInfo myRecipient = new PersonalInfo(); myRecipient.F

我有以上两个表,部门表中的PersonID是PersonalInfo表的外键。我有一个web表单,其中包含FirstName、SecondName、MobileNo和Department文本框。因此,我无法将
PersonID
插入
部门

您能告诉我如何使用linq to entityframework将
PersonalInfo
的ID存储到部门的
PersonID
中吗

这是我的代码:

PersonalInfo myRecipient = new PersonalInfo();
myRecipient.FirstName = id_firstName.ToString();
myRecipient.SecondName = id_lastName.Text.ToString();
myRecipient.MobileNo = id_mobileNo.Text.ToString();
Department myDepartment = new Department();
myDepartment.Department1 = id_departmentName.Text.ToString();
MyEntity myDB = new MyEntity();

myDB.AddToPersonalInfoes(myRecipient);

myDB.AddToDepartments(myDepartment);
myDB.SaveChanges();

顺便说一下,将
Department
表中的列名
Department
更改为
DepartmentName
,这样您在使用实体引用的EntityFramework中就不会得到名为
Department1
的属性。所以你不必关心身份证。您所要做的就是设置从部门到PersonalInfo的引用。EF将关注您的ID、PKs和FKs

try 
{
  // create objects, set properties ...
  PersonalInfo myRecipient = new PersonalInfo();
  myRecipient.FirstName = id_firstName.ToString(); // CHECK if value is valid (correct max length, ..)
  // and so on ..

  // set reference from Entity Department to Recipient
  myDepartment.PersonalInfo = myRecipient;

  myDB.AddToPersonalInfoes(myRecipient);
  myDB.AddToDepartments(myDepartment);
  myDB.SaveChanges();
} 
catch (Exception ex)
{
  Debug.WriteLine(ex.Message);
  if (ex.InnerException!=null)
    Debug.WriteLine(ex.InnerException.Message);
}

你可以看看这个,它很好地说明了这一点

在将两个新实体关联为指定的Amiram Korach之后,您只需要以下代码之一:

    myDB.AddToPersonalInfoes(myRecipient);

    myDB.AddToDepartments(myDepartment);

我添加了重新协商并获得异常更新异常未被用户代码处理。base{“更新条目时出错。有关详细信息,请参阅内部异常。”}System.exception{System.Data.UpdateException}抱歉,我需要检查什么以及如何检查。在“/”应用程序中出现此链接服务器错误时弹出帮助。字符串或二进制数据将被截断。声明已终止。描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。异常详细信息:System.Data.SqlClient.SqlException:字符串或二进制数据将被截断。语句已终止。editet answer-在调试模式下在输出窗口中显示异常消息
    myDB.AddToPersonalInfoes(myRecipient);

    myDB.AddToDepartments(myDepartment);