2

上記の2つのテーブルがあり、部門テーブルにPersonIDはテーブルの外部キーがありPersonalInfoます。FirstName、SecondName、MobileNo、Departmentのテキストボックスを含むWebフォームがあります。だから私はに挿入するのに問題がありPersonIDますDepartment

linq to entityframeworkを使用して、部門のPersonalInfoIDを格納する方法を教えてください。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();
4

3 に答える 3

1

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

あなたはこのブログを見るかもしれません、それはこれがとても素晴らしいことを説明します!

于 2012-08-28T07:16:05.367 に答える
0
myDepartment.PersonalInfo = myRecipient;

ちなみに、テーブルの列名DepartmentをにDepartment変更するDepartmentNameと、という名前のプロパティが取得されなくなりますDepartment1

于 2012-08-28T07:06:57.387 に答える
0

そして、Amiram Korachが指定したように、2つの新しいエンティティが関連付けられた後、次のコードの1つだけが必要になります。

    myDB.AddToPersonalInfoes(myRecipient);

    myDB.AddToDepartments(myDepartment);
于 2012-08-28T07:21:32.717 に答える