0

これは私の問題に似た単純化された例です。Car と Owner という 2 つの SQL テーブルがあるとします。

Table Car には外部キー IDOwner があります。Lightswitch データ モデルにはデータ項目 Car と Owner があり、

dataitem Car にはサブオブジェクト Owner があり、デフォルトでは null です。自動生成された AutoCompleteBox などではなく、コードを介して Onwer サブオブジェクトを設定したいと考えています。私はこのようにコードを書きました:

所有者 ow = this.DataWorkspace.MyData.Owners.Where(x => x.IDOnwer = SOME_ID).First(); // この時点で、変数 ow は正規にロードされた null オブジェクトではありません - デバッガーで確認しました

this.CarDataItem.Owner = ow;

//この時点で、ow はまだロードされていますが、null オブジェクトではありませんが、this.CarDataItem.Owner はまだ null です - //デバッガでもチェックされます

私の質問は、このタイプのデータアイテムのサブオブジェクトをコードで変更する適切な方法は何ですか?

画面デザイナを開いて CarDataItem の Owner プロパティを画面にドラッグすると、AutoCompleteBox が表示され、そこで Owner サブオブジェクトを選択できますが、それは望ましくありません。やりたい

コードを介して自動的に。事前にどうもありがとうございました!

4

2 に答える 2

0

モデル層があり、関連付けを設定するために最初に EF コードなどのデータ注釈を使用していますか?

これは不自然なmsdnの例です http://msdn.microsoft.com/en-us/library/ff422034%28v=VS.91%29.aspx

于 2012-11-15T21:47:35.540 に答える
0

CarDataItemが存在する理由がわかりません。CarエンティティとOwnerエンティティがあることを理解しました。それらの間の関係を定義しましたか?あなたの場合、所有者が存在しなければならないことを指定していないので、関係は 0..1-Many になります。

そのリレーションシップを追加した場合、CarエンティティはOwnerという名前のナビゲーション プロパティを取得します (名前を変更しない限り)。次に、コードが次のことを行うのは簡単なことです。

//これは、Owner ow = this.DataWorkspace.MyData.Owners_SingleOrDefault(SOME_ID); という行よりも望ましいものです。

this.Car.Owner = ow;

于 2012-11-15T06:00:10.633 に答える