WCF Data Services を使用してメンテナンスのオーバーヘッドを回避するために、サービス参照の生成を避けています。
現在、System.Data.Services.Client.DataServiceContext クラスを DataServiceQuery と組み合わせて使用しています。これは機能しますが、コードまたは構成にハードコードされた文字列 (エンティティ セット名と URI) が必要であることを意味します。
これに代わるものは何ですか?注意が必要な落とし穴はありますか?
ChannelFactoryの作成について言及したものを見ました
しかし、これは非常に面倒に見えました。少なくとも表面的には、私が現在行っていることよりも優れているようには見えませんでした。
EDIT もう少し詳細 - EF DBContext を公開するサービスは次のとおりです。
public class DocumentService : DataService<DocumentContext>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("Documents", EntitySetRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
config.UseVerboseErrors = true;
}
protected override DocumentContext CreateDataSource()
{
return new DocumentContext("DocumentsContext");
}
}
そして、明示的な参照なしで呼び出す方法:
new DataServiceContext(uri, maxVersion).CreateQuery<DocumentEntity>(entitySetName)....etc
これに代わるものは何ですか?= DataServiceContext クラスの代替