[英]Insert Record into two tables with one to many relation by using linq to ado.net entity froamwork
我有上面两个表,在部门表中, PersonID
是PersonalInfo
表的外键。 我有一个包含FirstName,SecondName,MobileNo和Department文本框的Web表单。 所以我在将PersonID
插入Department
时遇到问题。
可否请您让我知道我怎么能存储的ID PersonalInfo
成PersonID
部门使用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.