2

EF 4.0 で作成されたモデルがあるとします。

  • ユーザー

    • 役割

      • 権限

各エンティティには、DeleteDate プロパティがあります。

特定のユーザー (Name =...) を取得し、ツリーに DeletedDate == null のアイテムを入れたい..

これは結果として匿名型射影で行う必要がありますが、2 より深い階層でこれを達成する方法がわかりません。

これは私がすでに持っているものです:

    public MyProjection MyCall(string givenName)
    {
      var result = from s in context.Users
                   where (s.Name == givenName &&
                                    s.DeletedDate == null)
                             select new
                             {
                                 s,
                                 roles = from r in s.Roles
                                         where r.DeletedDate == null
                                         select r
                             };

      var outcome = result.FirstOrDefault();

      if (outcome != null)
      {
         var myProjection = new MyProjection()
         {
             User = outcome.s,
             Roles = outcome.roles
         };

         return myProjection;
       }

    return null;
   }
4

2 に答える 2

0

構造に応じて、次のようなことができます。

        var result = m.Users.Where(u => u.DeletedDate == null)
            .Select( u => new
                            {   
                                u,
                                roles = u.Roles.Where(r => r.DeletedDate == null)
                                               .Select(r => new
                                                   {
                                                        r,
                                                        permissions = r.Permissions.Where(p => p.DeletedDate == null)
                                                   })
                            }).FirstOrDefault(item => item.u.Name == givenName);
于 2012-10-03T14:59:03.343 に答える
0

以下で取得した場合:

 var result = from s in MyUsers
              where s.DeletedDate == null
              select new aUser{
                   Roles = (from r in s.Roles
                            where r.DeletedDate == null
                            select r).ToList()
              };

次に、TreeView を作成します。

 TreeView treeView = new TreeView();

次に、TreeView の ItemsSource を IEnumerable に設定します。

 treeView.ItemsSource = result;

次に、TreeView で HierarchicalDataTemplate を構築して、リストを表します (これと同様、または詳細については、これ)。

于 2012-10-03T20:39:19.240 に答える