【问题标题】:Consume WCF Data Services (OData) from .NET with untyped objects使用无类型对象从 .NET 使用 WCF 数据服务 (OData)
【发布时间】:2011-10-14 10:32:36
【问题描述】:

我需要 ASP.NET Web 应用程序通过 OData 将潜在客户提交到 crm 系统。

.Net 中唯一使用 OData 的 API,除了使用 HTTP 级别之外,似乎是 DataServiceContext 类,并调用其通用的 CreateQuery<> 方法,例如CreateQuery<Lead>("LeadSet"); 但是,这将要求我的代码具有与 OData 实体匹配的强类型类。

我对这种方法的问题是,出于各种原因,我不想使用静态类型。

有没有办法将 DataServiceContext 与无类型对象一起使用?还是有其他我不知道的 OData 客户端库?

我的目标是能够写出这样的东西:

var lead = new Entity("Lead");
lead["name"] = "Larry Jones";
lead["source"] = "google";
lead["email"] = "test@test.com";
context.AddObject("LeadSet", lead);
context.SaveChanges();

也许动态可以做到这一点?

【问题讨论】:

    标签: .net wcf dynamic odata strong-typing


    【解决方案1】:

    我们目前正在研究这个,即所谓的 ODataLib。它的第一个 CTP 是 WCF 数据服务 CTP1 的一部分:http://blogs.msdn.com/b/astoriateam/archive/2011/06/30/announcing-wcf-data-services-june-2011-ctp-for-net4-amp-sl4.aspx。 尽管该版本只能读取 JSON 并且只有在您确实有元数据的情况下才能读取,所以它很可能还不能用于您。我们也在致力于 ATOM 阅读和更简单的元数据故事。 还有一个源版本,虽然那个版本有点旧:http://odata.codeplex.com/releases/view/60787

    【讨论】:

    • 这种情况有改变吗?现在有没有办法使用无类型对象使用 WCF 数据服务? - 谢谢
    • ODataLib 已发布(不久前) - 例如在 NuGet 上作为 Microsoft.Data.OData.dll。它支持所有 OData(WCF 数据服务在内部使用它进行所有读/写)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多