1

" =

> " が "1 対多" の関係を表すサンプル スキーマを次に 示し ます 。サーバーへの 1 つの呼び出しを使用します。 これまでLoadWithを使用しました:






 using (Data.ABWXDataContext db = new Data.ABWXDataContext())
            {
                DataLoadOptions options = new DataLoadOptions();
                options.LoadWith<Data.Contract>(c => c.ContractCustomers);
                options.LoadWith<Data.Contract>(c => c.ContractDiscounts);
                options.LoadWith<Data.ContractDiscount>(c => c.DiscountType);
                options.LoadWith<Data.ContractCustomer>(c => c.Customers);
                db.LoadOptions = options;
                var Contract = from con in db.Contracts
                               where con.ContractId == contractId
                               select con;
                return Contract.ToList();
            }
        }

上記のコードは、ContractDiscounts および ContractCustomers テーブルを含めるために正常に機能します。ただし、(割引タイプ、顧客) にはアクセスできません。それらがコントラクトの子ではないことは理解しています。コントラクト オブジェクトをどのように関連付けることができますか?

これが単純な一般的なタスクである場合は申し訳ありません。

4

2 に答える 2

0

この質問に対する答えが私のために働くことがわかりました

コピーされた回答:

なんだって分かった!Linq to SQL は [DataMember()] 属性を子レコードに配置しますが、親レコードには配置しません。Association の下に [DataMember()] 属性を追加する必要がありました。

欠点は、これが context.designer.cs への手動入力であり、dbml が変更されると上書きされることです :-(

[Association(Name="CustomerStatus_Customer", Storage="_CustomerStatus", ThisKey="CustomerStatusId", OtherKey="CustomerStatusId", IsForeignKey=true)]
[DataMember()]
public CustomerStatus CustomerStatus
{
    get
    {
        return this._CustomerStatus.Entity;
    }
    set
    { 
      ...
     }
 }
于 2013-10-26T16:45:03.577 に答える