为了避免使用 WCF 数据服务的维护开销,我避免生成服务引用。
目前我将 System.Data.Services.Client.DataServiceContext 类与 DataServiceQuery 结合使用。这可行,但意味着代码或配置中必须有一些硬编码字符串——实体集名称和 URI。
有什么替代方案?我需要注意哪些陷阱?
我看到了一些提到创建ChannelFactory
然而,这看起来很麻烦,或者至少从表面上看,它似乎并没有比我目前正在做的更好。
编辑 更详细一点 - 这是公开 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 类的替代品