2012-11-14 33 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问,你的代码在哪里被使用?用什么方法,什么实体?或在屏幕上?在我们能够进一步提供帮助之前,我们需要更多信息。 –