0

Datagrid をナビゲーション プロパティにバインドしたい。

たとえば、Client_ID でリンクされた 2 つのエンティティ クライアントと電話があるとします。

ユーザーが電話の詳細を編集しても問題ありません。変更は正しく保存されます

ユーザーが新しい電話を追加して保存すると、新しい行が保存されないという問題が発生します。また、ユーザーが新しいクライアントを追加する場合。クライアント データは保存されますが、すべての電話は保存されませんか? 手伝ってくれてありがとう

4

2 に答える 2

0

これは、Phone にプロパティ Client があるためである可能性があります。Phone を追加すると、このプロパティは null になるため、その Client プロパティを現在のクライアントに設定するか、より正確には、id が Phone FK にあるクライアントに設定する必要があります。これが役立つことを願っています。

public void SaveClient(Client client)
        {
            client.PhoneNumbers.ToList().ForEach(pn=>pn.Client=client);
            using(var context=new MyContext())
            {
                  context.Clients.Add(client);
                  context.SaveChanges();
             }

        }
于 2012-07-05T09:36:58.083 に答える
0
 private void Save_Button_Click(object sender, RoutedEventArgs e)
    {
        Client1.PhoneNumbers.ToList().ForEach(pn => pn.Client = Client1);
        Client1.OtherNavigationProperties = null;
        using(var context=new MyContext())
        {
            if (insert)
                context.Client.Add(Client1);
            if (update)
            {
                var client = context.GetClientsByClientID(Client1.ID);
                client.PhoneNumbers = Client1.PhoneNumbers;
                //other changes if any in client
                //again set all navigation properties null else than PhoneNumbers

            }
            context.SaveChanges();
        }
    }

これを試してみてください

于 2012-07-05T11:26:06.093 に答える