2012-11-14 32 views
0

這是一個與我的prolem類似的簡單示例。假設你有2個sql表:車和車主Lightswitch - 通過代碼更改dataitem的相關屬性

表車有外鍵IDOwner。 Lightswitch數據模型具有數據項Car和Owner,並且

dataitem Car具有子對象所有者默認情況下爲null。我想通過代碼設置Onwer子對象,而不是通過自動生成的AutoCompleteBox或類似的東西。我這樣寫代碼:

Owner ow = this.DataWorkspace.MyData.Owners.Where(x => x.IDOnwer = SOME_ID).First(); //此時變量ow是regullary加載的不爲null對象 - 我在調試器中看到它

this.CarDataItem.Owner = ow;

//在這一點上流動仍然加載不爲空的對象,但this.CarDataItem.Owner仍然是空 - //還檢查在調試器

我的問題是什麼來改變這種類型的DataItem的的正確方法子代碼通過代碼?

如果我打開屏幕設計器並在屏幕上拖動CarDataItem的所有者屬性,我將獲得AutoCompleteBox,我可以在其中選擇Owner子對象,但我不想那樣做。我想這樣做

自動通過代碼。非常感謝您提前!

+0

你在哪裏寫代碼?我的意思是,這個代碼綁定了什麼事件? – danihp

回答

0

我不明白爲什麼CarDataItem存在。我知道你有一個汽車實體,&你有一個所有者實體。你有沒有定義他們之間的關係?在你的情況,看到你沒有指定必須是一個所有者,你的關係將是0..1-很多。

如果你有這樣的關係補充說,汽車實體會得到所謂所有者導航屬性(除非你改了名字)。這將是一個簡單的事情,你的代碼做以下幾點:

//這是比你有的行更可取 Owner ow. this.DataWorkspace.MyData.Owners_SingleOrDefault(SOME_ID);

this.Car.Owner = ow;

+0

對不起,我已經用嘮叨詞來形容情況。是的,我在數據源中有Car和Owner實體(不是數據項)。 Dataitem是屏幕上的具體實體。有定義的關係,它是0..1-許多。但問題是,當我設置ow對象並說出這個.Car.Owner = ow,這個.Car.Owner仍然是空的。 – user1515004

+0

沒問題,但是我很抱歉,我不知道還有什麼要說的。這就是事情的運作方式,這是我經常使用的技術。正如danihp問,你的代碼在哪裏被使用?用什麼方法,什麼實體?或在屏幕上?在我們能夠進一步提供幫助之前,我們需要更多信息。 –