小编Lib*_*orV的帖子

测量OData响应的输出

我有一个基于MVC的网站,其中一个页面应该提供OData格式化的结果,同时还记录发送了表示结果中每条记录的字节数.我使用以下代码从DB获取结果:

[EnableQuery]
public IHttpActionResult GetRecords(ODataQueryOptions<Record> queryOptions)
{
 DataProvider<Record> provider = GetRecordProvider();
 ...
 return OK<IQueryable<Record>>(provider.Queryable);
}
Run Code Online (Sandbox Code Playgroud)

我试图通过它挂钩到OData格式化程序

 config.Formatters.InsertRange(0, ODataMediaTypeFormatters.Create(new CustomODataSerializerProvider(), new DefaultODataDeserializerProvider()));
Run Code Online (Sandbox Code Playgroud)

哪里

public class CustomODataSerializerProvider : DefaultODataSerializerProvider
{
    public override ODataEdmTypeSerializer GetEdmTypeSerializer(IEdmTypeReference edmType)
    {
        if (edmType.Definition.TypeKind == EdmTypeKind.Entity)
            return new CustomODataEntityTypeSerializer(this);
        else
            return base.GetEdmTypeSerializer(edmType);
    }
}

public class CustomODataEntityTypeSerializer : ODataEntityTypeSerializer
{
    public CustomODataEntityTypeSerializer(ODataSerializerProvider provider)
        : base(provider)
    {
    }

    public override ODataProperty CreateStructuralProperty(IEdmStructuralProperty structuralProperty, EntityInstanceContext entityInstanceContext)
    {
        var property = base.CreateStructuralProperty(structuralProperty, entityInstanceContext);
        if(property.Value == null) return null;
        else return property; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc odata

8
推荐指数
1
解决办法
532
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

c# ×1

odata ×1