我想綁定一個Datagrid導航屬性。綁定WPF Datagrid導航屬性EF?
爲example.If我有兩個實體客戶端和CLIENT_ID
當用戶編輯手機的詳細信息,修改正確保存
的問題無問題手機連接時存在的用戶添加新的手機和保存時,新行未保存。 也如果用戶添加新的客戶端。客戶端數據已保存,但所有手機都未保存? 感謝您的幫助
我想綁定一個Datagrid導航屬性。綁定WPF Datagrid導航屬性EF?
爲example.If我有兩個實體客戶端和CLIENT_ID
當用戶編輯手機的詳細信息,修改正確保存
的問題無問題手機連接時存在的用戶添加新的手機和保存時,新行未保存。 也如果用戶添加新的客戶端。客戶端數據已保存,但所有手機都未保存? 感謝您的幫助
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();
}
}
試試這個
這可能是因爲電話將擁有Property Client當您添加Phone時,此屬性爲null,因此您還必須將其客戶端屬性設置爲當前客戶端或更確切地說,將在電話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();
}
}
謝謝回覆。我從電話中刪除了客戶端媒體資源。但它不起作用 – Sam1970
不,你不能刪除它,那麼它將無法工作,所有你需要做的就是當你發送它保存或初始化電話對象時,將客戶端設置爲它。 – ethicallogics
看到答案我添加了虛擬代碼。 – ethicallogics
給我你的代碼。客戶端類和保存方法。 – ethicallogics
我更新了問題代碼 – Sam1970
感謝ethicallogics它工作正常 – Sam1970