2012-02-02 16 views
1

は、私はこのようなルックスを持つクラスを持っている: カスタムクラス/シルバー

[DataContract] 
public class TestBatchWithHistoryResult 
{ 
    [Key] 
    [DataMember] 
    public int Id { get; set; } 
    [DataMember] 
    public string Name { get; set; } 
    [DataMember] 
    public string Description { get; set; } 
    [DataMember] 
    public string LastRequestedBy { get; set; } 
    [DataMember] 
    public DateTime? LastRun { get; set; } 
    [DataMember] 
    public Collection<string> LastConfigurations { get; set; } 
    [DataMember] 
    public TestBatch Entity { get; set; } 
} 

私は、ウェブサイトやSilverlightプロジェクトをビルドし、「自動でエンティティプロパティが作成されていないことがわかり

生成された "コードはSilverlight側にありますが、その他のプロパティはすべて存在します。

Entityプロパティの作成を妨げる原因は何ですか?データ契約は、あなたのサービスのいずれかによって参照されていない場合

マイケル

答えて

0

おかげで、それは存在しません。参照されたデータコントラクトのみが生成されます。それが参照されていないが、返される(つまり、返された型から継承され、ある時点で返される型である)場合、ServiceKnowTypeAttributeを使用して、サービス契約の開始時に宣言します。

+0

こんにちはポール。 Entityプロパティによって返されるTestBatchクラスは、サービス上の他の操作による参照ですが、このクラスがSilverlightプロジェクトで生成されるとき、Entityプロパティは渡されません。 TestBatchのKnownType属性とこのクラスをサービスに配置しましたが、何の効果もありませんでした。 – Michael

0

クライアント側で作成される子エンティティについて、あなたは例えば、サーバ側でそのエンティティタイプを暴露するサービスメソッドを持っている必要があります:

public IQueryable<TestBatch> GetTestBatches(){} 

そして、あなたも含める属性を持っている必要がありますプロパティ上:

[Include] 
public TestBatch Entity {get; set;}