1
私は、クエリー結果をjavascriptクライアントに返すためにWCF dataserviceクラスを作成しました。私のデータサービスの疑似コードは次のとおりです。wcf dataserviceから関連するエンティティを返す方法
public class MyDataService : DataService<MyEntities>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("MyGetMethod", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServicePRotocolVersion.V2;
}
[WebGet(UriTemplate = "{SomeID}"]
public IEnumerable<Models.Customer> MyGetMethod(int? someID)
{
if (someID == null) throw new DataServiceException("ID not specified");
MyEntities context = this.CurrentDataSource;
context.ContextOptions.LazyLoadingEnabled = false;
var q = Linq statement which queries for a collection of entities from context
IEnumerable<Models.Customer> result = q;
foreach (Models.Customer customer in result)
{
if (!customer.Contacts.IsLoaded)
customer.Contacts.Load();
}
return result;
}
}
クライアント要求からの呼び出しがjsonになります。 dataserviceでgetメソッドをデバッグすると、resultにはWrappedRelatedEntitiesというプロパティで展開された特定の関連データがありますが、jsonでクライアントに返された関連エンティティは遅延しています。
これらの関連エンティティをクライアントに返品させるには、どうすればよいですか?ありがとう!