Impossible de convertir l'objet de type 'System.Les données.De l'entité.L'Infrastructure.DbQuery`1[]' utilisation de linq expression lambda

je suis nouveau sur mvc et en essayant de se faire une idée de ce que je fais de mal, j'ai créer un Dbcontaxt classe

 public class DataBaseContext : DbContext
{
    public DataBaseContext()
        : base("DefaultConnection")
    {
    }
    public DbSet<Membership> Membership { get; set; }
    public DbSet<OAuthMembership> OAuthMembership { get; set; }
    public DbSet<Role> Roles { get; set; }
    public DbSet<UserProfile> UserProfiles { get; set; }
    public DbSet<Category> Categorys { get; set; }
    public DbSet<SubCategory> SubCategorys { get; set; }
    public DbSet<Product> Products { get; set; }
    public DbSet<Color> Colors { get; set; }
    public DbSet<Size> Sizes { get; set; }
    public DbSet<Company> Companys { get; set; }
    public DbSet<UsersInRoles> UsersInRoles { get; set; }
  }
}

et j'ai créer une classe de modèle pour créer un fortement afficher le type de

    [Bind(Exclude = "AddUserToRoleID")]
    public class AddUserToRole
{
    [ScaffoldColumn(false)]
    public int AddUserToRoleID { get; set; }
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }
    [Required]
    [Display(Name = "Role name")]
    public string RoleName { get; set; }

}
}

dans le contrôleur, je suis en train de créer la vue de détail par l'ajout d'afficher et de sélectionner AddUserToRole que mon modèle pour la fortement afficher le type de

    public ActionResult Details(int id = 0)
    {

        var UserInRole = db.UserProfiles
        .Join(db.UsersInRoles,
              u => u.UserId,
              uir => uir.UserId,
              (u, uir) => new {u = u,uir = uir})
        .Join(db.Roles,
              temp0 => temp0.uir.RoleId,
              r => r.RoleId,
              (temp0, r) => new { temp0 = temp0,r = r })
        .Where(temp1 => (temp1.temp0.u.UserId == id))
        .Select(temp1 => new AddUserToRole {
            AddUserToRoleID = temp1.temp0.u.UserId,
            UserName = temp1.temp0.u.UserName,
            RoleName = temp1.r.RoleName
        });            

        return View(UserInRole);
    }

me donne cette erreur

The model item passed into the dictionary is of type
'System.Data.Entity.Infrastructure.DbQuery`1[SeniorProject.Models.AddUserToRole]', but
this dictionary requires a model item of type 'SeniorProject.Models.AddUserToRole'.

et quand je lance return View((UsersInRoles)UserInRole); me donne cette erreur

Unable to cast object of type
'System.Data.Entity.Infrastructure.DbQuery`1[SeniorProject.Models.AddUserToRole]' 
 to type'SeniorProject.Models.UsersInRoles'.

et la vue

@model SeniorProject.Models.AddUserToRole

@{
ViewBag.Title = "Details";
}

<h2>Details</h2>

<fieldset>
    <legend>AddUserToRole</legend>

<div class="display-label">
     @Html.DisplayNameFor(model => model.UserName)
</div>
<div class="display-field">
    @Html.DisplayFor(model => model.UserName)
</div>

<div class="display-label">
     @Html.DisplayNameFor(model => model.RoleName)
</div>
<div class="display-field">
    @Html.DisplayFor(model => model.RoleName)
</div>
</fieldset>
<p>
@Html.ActionLink("Edit", "Edit", new { id=Model.AddUserToRoleID }) |
@Html.ActionLink("Back to List", "Index")
</p>

que dois-je faire dans ce cas?

OriginalL'auteur Fadi | 2014-04-07