2013-07-29 17 views
1

我对mvc很陌生并试图去理解它。我正在关注this instruction来处理很多很多关系。但是我创建了一个接口和实体框架,并使用ninject将它们绑定在一起。而不是'书籍'和'用户'(就像在教程中),我使用'组'和'用户'。我读到了同样的错误很多帖子,但他们似乎没有解决我的问题mvc 4不能隐式转换IEnumerable <anonymous>

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 

回答

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() 
     }; 
0

你需要将其转换为一个列表:

GroupListViewModel model = new GroupListViewModel 
      { 
       GroupNetworkUsers = testRepo.Groups.SelectMany(
         group => group.Users, 
         (group, user) => new { 
          userName = user.vch_NetworkID  
         } 
        ).ToList() 
      }; 
+0

感谢您的回复。但它不起作用。现在错误说错误无法将类型'System.Collections.Generic.List '隐式转换为'System.Collections.Generic.IEnumerable ' – kaboom

相关问题