【发布时间】:2011-11-28 19:31:29
【问题描述】:
我正在使用 WCF 数据 服务 (OData) 来公开一些数据,这些数据是我的 SQL Server 数据库中的 varchar(10)。 (我正在使用实体框架来公开它。)
有没有办法询问 OData 端点一个字符串可以有多长(即从 varchar(10) 获取 10)?
【问题讨论】:
我正在使用 WCF 数据 服务 (OData) 来公开一些数据,这些数据是我的 SQL Server 数据库中的 varchar(10)。 (我正在使用实体框架来公开它。)
有没有办法询问 OData 端点一个字符串可以有多长(即从 varchar(10) 获取 10)?
【问题讨论】:
如果服务是基于 EF 的服务,并且 EF 模型的 CSDL 包含属性的最大字符串长度属性,则服务的 $metadata 也将包含该属性。然后客户端可以解析 $metadata 并请求这个。 请注意,WCF DS 客户端库没有执行此操作的 API。您可以使用 ODataLib 和 EdmLib 来读取 $metadata(或只是纯 XML)。它们位于最新 CTP 中的 Microsoft.Data.OData.dll 和 Microsoft.Data.Edm.dll (http://blogs.msdn.com/b/astoriateam/archive/2011/10/13/announcing-wcf-data -services-oct-2011-ctp-for-net-4-and-silverlight-4.aspx)。 但请注意,如果服务基于 EF 以外的其他东西,那么目前无法以这种方式自定义 WCF DS 本身中的 $metadata 端点。您必须以其他方式自己公开 $metadata。
【讨论】: