2009-07-28 3 views
1

私のデータベースのテーブルのサブソニックに頼みます。 テーブルと外部キーを投げた他のすべてのテーブルを返しますサブソニック2:オブジェクトが複数のデータベーステーブルを返すinfo

余分なテーブル情報をすべて取り戻すことはできませんか?ここで

は私のコードです:私は返す

[WebMethod] 
[ScriptMethod] 
public List<DealEquipment> GetDealEquipment(Guid DealID) 
{ 
    List<DealEquipment> dealEquipmentList = new List<DealEquipment>(); 
    Deal deal = new Deal(DealID); 
    DealEquipmentCollection dealEquipmentCollection = deal.DealEquipmentRecords(); 

    foreach (DealEquipment dealEquipment in dealEquipmentCollection) 
    { 
     DealEquipment dealEquipmentTemp = dealEquipment; 
     DealEquipmentSerialNumberCollection dealEquipmentSerialNumberCollection =  new  DealEquipmentSerialNumberCollection().Where(DealEquipmentSerialNumber.Columns.FkDealEquipmentID, Comparison.Equals, dealEquipmentTemp.PkDealEquipmentID).Load(); 
     dealEquipmentTemp.objSerialNumber = new List<DealEquipmentSerialNumber>(); 
     foreach (DealEquipmentSerialNumber dealEquipmentSerialNumber in dealEquipmentSerialNumberCollection) 
     { 
      dealEquipmentTemp.objSerialNumber.Add(dealEquipmentSerialNumber); 
     } 
     dealEquipmentList.Add(dealEquipmentTemp); 
    } 

    return dealEquipmentList; 
} 

dealEquipmentListは 、唯一のサプライヤに自分のForeignKeyを含むと想定されるが、供給テーブルの情報も含まれています。

サプライヤオブジェクトには大きなバイナリイメージが含まれているため、これは問題です。

nullに設定しようとしましたが無視されます。

アイデア?

答えて

2

実際にはオブジェクトは含まれていません。これは、DealEquipmentのSupplierプロパティにアクセスすると、FetchByID(int)を使用して、選択したIDのサプライヤを取得するための新しいリクエストをDBに送信します。あなたが望むなら、生成されたクラスを見て自分の目で見ることができます。

(この答えは、バージョン2.1.1.0に基づいています。)

+0

ありがとうは迅速な対応 のために私は私がその後、何をすべき を理解していることを確認していませんか?私はちょうどそれを残す場合、私は最大のjson lenghtエラーを取得します。 時計に戻す前にオブジェクトを見ると、私はバイナリイメージ –

+0

を見ていますが、私は理解していると思っていますが、それをどう扱うかは十分にはわかりません。私は起こっていることは、リストがjsonに変換されると、システムはすべてのプロパティにアクセスするためにリフレクションを使用するということです。これにより、DBコールがトリガーされ、関連するデータがフェッチされ、さらにコンバージョンによってさらにカスケードされます。これが当てはまる場合は、表示するプロパティを独自の構造体に移動し、代わりにそれを返す必要があります。非常に楽しい解決策ではありませんが、私は恐れますが、それは私が見る唯一のものです。たぶん誰か他の人が反応して、代わりの、あるいはもっと特定の解決策を持っているでしょう。または少なくともこれを確認してください。 – krdluzni

+0

さらに、部分クラスを利用して、前述の構造体を生成する関数をDealEquipmentクラスに追加することができます。 – krdluzni

関連する問題