2010-04-07 68 views
1

我开始使用Astoria/ADO.NET数据服务/ WCF数据服务。仔细查看大量代码示例,看起来MimeType属性曾经是方法级别属性。安装the latest update后,它现在是一个类级属性。为什么System.Data.Services.MimeTypeAttribute现在只有一个类级属性?

如果我有多个服务操作要作为某个MimeType返回,那么现在看来我必须为每个操作创建一个新的服务。它是否正确?


大多数的例子是这样的:

[WebGet] 
[SingleResult] 
[MimeType("application/pdf")] 
public IQueryable<byte[]> FooPDF() 
{ 
    var result = from p in this.CurrentDataSource.MyPDFs 
       where p.FooID == 2 
       select p; 

    return result.Take(1).Select(p => p.PDF); 
} 

我得到“属性‘Mime类型’不在此声明类型有效的,所以只能在‘类’的声明有效。”当我编译时,因为现在我不能这样做。


现在,我必须这样做:

[MimeType("FooPDF", "application/pdf")] 
public class FooService : DataService<FooDBEntities> 
{ 
    public static void InitializeService(DataServiceConfiguration config) 
    { 
     config.SetServiceOperationAccessRule("FooPDF", ServiceOperationRights.All); 
    } 

    [WebGet] 
    [SingleResult] 
    public IQueryable<byte[]> FooPDF() 
    { 
     var result = from p in this.CurrentDataSource.MyPDFs 
        where p.FooID == 2 
        select p; 

     return result.Take(1).Select(p => p.PDF); 
    } 
} 

更糟糕的是,我不能添加重复的MimeType属性上我的课。

这一切都是真的by design,还是我错过了什么?

回答

2

感谢您向我们报告此错误。我已经在我们的这一端打开了这个问题来追踪这个问题

随着最近的更新,我们在数据服务中添加了对blob的支持作为第一类概念。如果你与一个实体有一个blob关联,那么服务器和客户端都有办法表达这一点。要了解更多信息,请参考以下链接:http://msdn.microsoft.com/en-us/library/ee473426(v=VS.100).aspx

希望这会有所帮助。

谢谢 Pratik [MSFT]

相关问题