2010-04-07 62 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]

相關問題