1

私はmvcが初めてで、コンセプトを理解しようとしています。私はこの指示に従って、多くの多くの関係に対処しています。しかし、インターフェイスとエンティティ フレームワークを作成し、ninject を使用してそれらをバインドします。'books' と 'users' (チュートリアルのように) の代わりに、'groups' と 'users' を使用します。同じエラーに関する多くの投稿を読みましたが、問題を解決していないようです

public interface IGroups
    {
        IQueryable<Group> Groups { get; }
    }

public class EFGroups : IGroups
    {
        private EFDbContextMainDb1 context = new EFDbContextMainDb1();

        public IQueryable<Group> Groups
        {
            get;
            set;
        }
    }

 public class EFDbContextMainDb1 : DbContext
    {
        public DbSet<Group> tblGroup { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Group>().ToTable("tblGroup");

            base.OnModelCreating(modelBuilder);
        }

    }

public class GroupListViewModel
    {
        public IEnumerable<GroupNetworkUser> GroupNetworkUsers { get; set; }

    }

GroupListViewModel model = new GroupListViewModel
            {
                GroupNetworkUsers = testRepo.Groups.SelectMany(
                        group => group.Users,
                        (group, user) => new { 
                            userName = user.vch_NetworkID

                        }
                    )
            };

エラーは「GroupNetworkUsers = testRepo.Groups.SelectMany(...」に適用されます。

Error   1   Cannot implicitly convert type 'System.Linq.IQueryable<AnonymousType#1>' to 'System.Collections.Generic.IEnumerable<Pho.Domain.Entities.GroupNetworkUser>'. An explicit conversion exists (are you missing a cast?) C:\visual_studio_project\pho\pho\Controllers\GroupsAndUsersController.cs    58  37  Pho.WebUI
4

2 に答える 2

1

新しい GroupNetworkUser オブジェクトを構築する必要があります。現在、匿名オブジェクトを作成しています

GroupListViewModel model = new GroupListViewModel
        {
            GroupNetworkUsers = testRepo.Groups.SelectMany(
                    group => group.Users,
                    (group, user) => new GroupNetworkUser {  // <-- Changed this line
                        UserName = user.vch_NetworkID    
                    }
                ).ToList()
        };
于 2013-07-29T16:58:07.777 に答える
0

リストに変換する必要があります。

GroupListViewModel model = new GroupListViewModel
            {
                GroupNetworkUsers = testRepo.Groups.SelectMany(
                        group => group.Users,
                        (group, user) => new { 
                            userName = user.vch_NetworkID    
                        }
                    ).ToList()
            };
于 2013-07-29T16:53:57.233 に答える