LINQ to ADO.net Data Services クエリを実行するときに、Expand キーワードを使用する代わりの方法があるかどうか疑問に思っています。expand メソッドは目的のデータを取得しますが、使用するサブオブジェクトをすべて事前に把握しておく必要があります。私の絶対的な好みは、それらのサブオブジェクトにアクセスするときに遅延ロードされることですが、これはオプションではないようです (この遅延ロードを get on そのサブオブジェクト プロパティに追加することもできますが、データ サービス参照の更新を行うと消去されます)。
この状況に対する提案/ベストプラクティス/代替手段はありますか? ありがとう。
===== MailingAddress を持つ Member を使用したコード例 =====
作品:
var me = (from m in ctx.Member.Expand("MailingAddress")
where m.MemberID == 10000
select m).First();
MessageBox.Show(me.MailingAddress.Street);
優先します (これが行って MailingAddress をロードした場合は本当に好きです)
var me = (from m in ctx.Member
where m.MemberID == 10000
select m).First();
MessageBox.Show(me.MailingAddress.Street);
または、少なくとも (注: サービス操作で LINQ to Entities として実行すると、MailingAddressReference を使用してこれに似たものがサーバー側で機能します)
var me = (from m in ctx.Member
where m.MemberID == 10000
select m).First();
if (!(me.MailingAddress.IsLoaded())) me.MailingAddress.Load()
MessageBox.Show(me.MailingAddress.Street);