2011-07-31 14 views
0

私は単純なWCFデータサービスを作ろうとしています。 scvファイルに正常にアクセスできましたが、Carsコレクションは表示されません。私scvの内容は次のとおりです。WCF Data Servicesコレクションが一覧表示されないのはなぜですか?

[DataServiceKey("VIN")] 
public class Car 
{ 
    public String VIN { get; set; } 
    public String Make { get; set; } 
    public String Model { get; set; } 
    public int Year { get; set; } 
} 

public class CarService : DataService<Car> 
{ 
    public IQueryable<Car> Cars 
    { 
     get 
     { 
      return (new List<Car> { 
       new Car { VIN = "ABC123", Make = "Ford", Model = "F-250", Year = 2000 }, 
       new Car { VIN = "ABC124", Make = "BMW", Model = "Z-3", Year = 2005 }, 
       new Car { VIN = "ABC125", Make = "Audi", Model = "TT", Year = 2008 } 
      }).AsQueryable(); 
     } 
    } 

    public static void InitializeService(DataServiceConfiguration config) 
    { 
     config.SetEntitySetAccessRule("*", EntitySetRights.AllRead); 
     config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
    } 
} 

するとアクセスは、ブラウザ上でこのサービスは、私が取得:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> 
<service xml:base="http://localhost:60730/CarService.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app"> 
    <workspace> 
    <atom:title>Default</atom:title> 
    </workspace> 
</service> 

コレクションが列挙されませんでしたことを参照してください。私は間違って何をしていますか?

答えて

4

が、この代わりに試してみてください:作品

[DataServiceKey("VIN")] 
public class Car 
{ 
    public String VIN { get; set; } 
    public String Make { get; set; } 
    public String Model { get; set; } 
    public int Year { get; set; } 
} 

public class MyContainer 
{ 
    public IQueryable<Car> Cars 
    { 
     get 
     { 
      return (new List<Car> { 
       new Car { VIN = "ABC123", Make = "Ford", Model = "F-250", Year = 2000 }, 
       new Car { VIN = "ABC124", Make = "BMW", Model = "Z-3", Year = 2005 }, 
       new Car { VIN = "ABC125", Make = "Audi", Model = "TT", Year = 2008 } 
      }).AsQueryable(); 
     } 
    } 
} 

public class CarService : DataService<MyContainer> 
{ 
    public static void InitializeService(DataServiceConfiguration config) 
    { 
     config.SetEntitySetAccessRule("*", EntitySetRights.AllRead); 
     config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
    } 
} 
+0

を!ラディスラフ、あなたはすでに一回以上私を救った。どうもありがとうございました。 Btw、私が提供したこのスニペットは、MCTS 70-516のMicrosoft Pressの書籍に含まれています。それは正しいと思われるので。 –

+1

私はWCFサービスについて少ししか知りませんが、これは、タイプがサービスへの汎用パラメータとして渡されたリフレクションプロバイダの例です。リフレクションによってブラウズされ、IQueryableを公開するプロパティが検索されます。だから私はその例が間違っていると信じて、あまりにも驚くことではないでしょう。ちょうど今日私はMCTS 70-516の私の経験について[短いブログのポスト](http://www.ladislavmrnka.com/2011/07/microsoft-certification-exams-70-561-and-70-516/)を書いた。 –

関連する問題