私はWindows Phone 7のSilverlightクライアントからodataフィードを使用しようとしています。基本的には、GroupsとUsersの間のUserGroupテーブルを持つ多対多のデータ関係です。ユーザーがログインすると、UserIdを使用して自分が所属するグループを照会する必要があります。私はすべてを試してみましたODataフィードからの多対多のクエリ
[DataServiceKey("Id")]
public class Group
{
public Guid Id { get; set; }
public string GroupTag { get; set; }
public DateTime DateCreated { get; set; }
[ForeignKey("GroupOwner")]
public Guid? GroupOwnerId { get; set; }
public virtual Person GroupOwner { get; set; }
public bool IsActive { get; set; }
public virtual ICollection<GroupUser> GroupUsers { get; set; }
}
[DataServiceKey("Id")]
public class GroupUser
{
public Guid Id { get; set; }
[ForeignKey("Group")]
public Guid GroupId { get; set; }
public virtual Group Group { get; set; }
[ForeignKey("Person")]
public Guid PersonId { get; set; }
public virtual Person Person { get; set; }
public bool IsActive { get; set; }
}
[DataServiceKey("Id")]
public class User
{
public Guid Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public virtual ICollection<GroupUser> UserGroups { get; set; }
public virtual ICollection<Group> MyGroups { get; set; }
}
を次のように私のデータクラスは、私はこの結果を得るために知っているが、私は関係なく、私が何を次々エラーを取得していない保ちます。それはあまりにも厄介なので、私はしたくない2つのクエリを持っているのは短かった、そこには何か解決策はありますか?
------研究の長い夜から更新------
、私はODATAはそう、「どれでも」と「すべて」タイプのクエリをサポートしていないの制限があることを発見しました私の質問は現時点では不可能です。私はまた、hereから、私のpocoクラスの実装は、このナビゲーション問題を解決するのに役立つ中間クラスを明示的に定義することなく多対多の関係を表すようにわずかに変更できることを発見しました。 私はナビゲーションプロパティを定義する際に問題を抱えていますが、ソリューションが見つかるとすぐにここに置いて、この道を歩む他の不運な旅行者を助けることができます。
あなたが探している結果は何ですか? – casperOne
こんにちはCasperOne、私はUserIdを提供し、ユーザーが属しているグループのリストを取得するために探しています。 –