1

私のAzureアプリケーション(モバイル)サービスで問題が発生している(問題がある場合)。私は、次のしているEntityDataオブジェクト:も作成されているMSSQL DBでAzureアプリケーション(モバイル)サービスがクラスのクラスタイプのプロパティを返さない

public class User : EntityData 
{ 
    public string Name { get; set; } 

    public string Surname { get; set; } 

    public string Username { get; set; } 

    public string Password { get; set; } 

    //foreign key to Role 
    public Role Role { get; set; } 

    public List<Appointment> appointments { get; set; } 

    public new string Id { get; set; } 

    public new DateTimeOffset? CreatedAt { get; set; } 

    public new DateTimeOffset? UpdatedAt { get; set; } 

    public new byte[] Version { get; set; } 
} 

テーブル: "を含む" という

public class Role : EntityData 
    { 
     public string RoleCode { get; set; } 

     public string RoleName { get; set; } 

     public List<User> Users { get; set; } 

     public new string Id { get; set; } 

     public new DateTimeOffset? CreatedAt { get; set; } 

     public new DateTimeOffset? UpdatedAt { get; set; } 

     public new byte[] Version { get; set; } 
    } 

...とクラスは、前の(役割ユーザーの外部キーです) :

Role table

User table

しかし、私はテーブルコントローラ使用してすべてのユーザーを返すようにしてみてください。

public IQueryable<User> GetAllUser() 
    { 
     return Query(); 
    } 

を...それは、そのユーザの何の役割がない私にすべてのユーザーを返しますが、

{ 
    "deleted": false, 
    "version": "AAAAAAABQJY=", 
    "updatedAt": "2016-09-24T14:51:06.126Z", 
    "createdAt": "2016-10-11T19:43:12.165Z", 
    "id": "8d5a1403-e0a1-4a69-b32d-708b3a84b260", 
    "password": "passwordUsera", 
    "username": "korisnik", 
    "surname": "Rafailovic", 
    "name": "Marija" 
    } 

すべて他のプロパティは存在しますが、ロールはありません!クエリにインクルードを使用しようとしましたが、役に立たなかった...

なぜこのようなことが起こり、どのようにすべてのユーザーにロールを含めることができますか?私はカスタムコントローラとストアドプロシージャを使用してそれを行ったが、それは素晴らしい解決策ではない...

+0

あなたは 'Include'をどのように使いましたか? – Sampath

+0

この 'Query()'は何ですか? – Sampath

+0

Query() - バックエンドストアを照会するためのヘルパーメソッドを提供します。すべてのテーブルコントローラに対して、必要なエンティティ(コントローラがフォーカスされているエンティティ)のすべての項目を返します。私はそれを使用して変更しようとしました: "return Query()。Include(x => x.Role);"しかし、それは助けにはなりません... – Nemanja

答えて

0

私の本http://aka.ms/zumobookのデータの章を参照することをお勧めします - これは、関係に関する特定のことができます。 Spoiler:あなたがオフラインの世界に押し込んだときの考え方は、それほどうまくいきません。

0

Azure Mobile Servicesの.NETバックエンドは、Entity Framework経由で簡単にテーブルを公開する可能性があります。しかし、リレーショナル・クエリーはデフォルトでは期待どおりに機能しませんでした。クライアント側のDelegatingHandlerをオーバーライドしてクエリを拡張し、カスタムActionFilterAttributeを追加して、バックエンドにリレーショナルプロパティを含めることができます。詳細については、この公式のtutorialに従うことで、Azure Mobile Servicesの.NETバックエンド経由で関係を持つデータを取得することができます。