2009-07-28 6 views
1

J'ai créé une entité personnalisée car j'ai besoin de remplir une entité avec des données provenant d'une jointure dans L2S. Lorsque je clique avec le bouton droit de la souris sur le code ActionResult du contrôleur pour "Ajouter une vue", puis que je sélectionne "Créer une vue fortement typée", ma classe n'apparaît pas dans les classes disponibles dans le sélecteur. Je ne suis pas sûr pourquoi. Voici mon code:Comment créer une vue MVC fortement typée basée sur une classe Linq2Sql personnalisée

//The Model 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data; 
using System.Data.SqlClient; 

namespace FurnitureStore.Models.Repository 
{ 
    public class FurnitureRepository 
    { 
     public IQueryable<Listing> GetProductListings() 
     { 
      FurnitureDataContext dc = new FurnitureDataContext(); 

     return (from p in dc.Products 
       join c in dc.Categories 
       on p.CategoryId equals c.CategoryId 
       select new Listing 
       { 
        ProductName = p.ProductName, 
        CategoryDescription = c.CategoryDescription 
       }); 
    } 
} 
} 

//The entity class 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace FurnitureStore.Models 
{ 
    public class Listing 
    { 
     public string ProductName { get; set; } 
     public string CategoryDescription { get; set; } 
    } 
} 

//The Method in the Controller 
public ActionResult ProductListings() 
{ 
    FurnitureRepository fr = new FurnitureRepository(); 
    var listings = fr.GetProductListings(); 
    return View("ProductListings",listings); 
} 

Répondre

1

Créez simplement une vue normale et modifiez la définition de page de la vue (hérite spécifiquement de l'attribut) vous-même. Je ne peux pas répondre à la question de savoir pourquoi il n'apparaît pas dans votre sélecteur de classe.

HTHS
Charles

3

Assurez-vous que vous compilez le code, si le code est pas compilé les classes nouvellement ajoutés DonT showup dans les classes disponibles dans le sélecteur

+1

C'est la façon tout à fait correcte pour résoudre ce! –

Questions connexes