0

我想将 Datagrid 绑定到导航属性。

例如。如果我有两个实体客户端和电话由 Client_ID 链接

用户编辑手机详细信息时没有问题,修改正确保存

用户添加新电话并保存时存在问题,新行没有保存。如果用户添加新客户端。客户端数据已保存,但所有电话均未保存?感谢帮助

4

2 回答 2

0

这可能是因为 Phone 将具有 Property Client 当您添加 Phone 时,此属性为 null,因此您还必须将其 Client Property 设置为 Current 客户端或更确切地说是其 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 回答