2011-06-16 68 views
4

這是我在一張原本空白的Web應用程序的唯一代碼(.NET 4):開始使用WCF數據服務

public class Spork 
{ 
    public string Name { get; set; } 
    public DateTime BirthDate { get; set; } 
} 

public class WcfDataService1 : DataService<Spork> 
{ 
    public static void InitializeService(DataServiceConfiguration config) 
    { 
     config.SetEntitySetAccessRule("*", EntitySetRights.AllRead); 
     config.SetEntitySetPageSize("*", 26); 
     config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
    } 

    [WebGet] 
    public IQueryable<Spork> Get() 
    { 
     List<Spork> retval = new List<Spork>(); 
     retval.Add(new Spork() { BirthDate = DateTime.Now, Name = "jason" }); 
     return retval.AsQueryable<Spork>(); 
    } 
} 

如果我去http://localhost:1285/WcfDataService1.svc/,我得到這樣的迴應:

<service xml:base="http://localhost:1285/WcfDataService1.svc/"> 
    <workspace> 
     <atom:title>Default</atom:title> 
    </workspace> 
</service> 

到目前爲止這麼好,我猜。現在,我想通過http://localhost:1285/WcfDataService1.svc/Get獲得我的spork。但是我得到了一個「找不到資源的資源'獲取'。」錯誤。我誤解了什麼?

回答

2

您正在使用DataService,但Spork不是數據源(Context),它是一個實體類。

嘗試在數據上下文中定義Spork,例如使用實體框架模型或Linq To Sql模型。

0

看來你正在嘗試使用REST和WCF。可以這樣做(請參閱:http://msdn.microsoft.com/en-us/magazine/dd315413.aspx),但默認情況下,WCF是基於SOAP的。如果你想使用URL +動詞,你將不得不在你的web.config中設置它。

祝你好運!

+0

WCF數據服務支持OData(= Atom + REST)。 – 2011-06-20 07:33:41