繁体   English   中英

通过使用linq到ado.net实体框架,将Record插入到具有一对多关系的两个表中

[英]Insert Record into two tables with one to many relation by using linq to ado.net entity froamwork

我有上面两个表,在部门表中, PersonIDPersonalInfo表的外键。 我有一个包含FirstName,SecondName,MobileNo和Department文本框的Web表单。 所以我在将PersonID插入Department时遇到问题。

可否请您让我知道我怎么能存储的ID PersonalInfoPersonID部门使用LINQ to的EntityFramework?

这是我的代码:

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();

在EntityFramework中,您正在使用实体引用 因此,您不必关心ID。 您要做的就是设置Department到PersonalInfo的引用 EF会照顾您的ID,PK和FK!

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);
}

您可以看一下这个博客 ,它说明了这一点!

myDepartment.PersonalInfo = myRecipient;

顺便说一句,将Department表中的列名Department更改为DepartmentName ,这样就不会获得名为Department1的属性。

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

    myDB.AddToPersonalInfoes(myRecipient);

    myDB.AddToDepartments(myDepartment);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM