2010-08-27 5 views
1

extrêmement désolé d'écrire ici, je suis un gars php, fait MVC .NET depuis trois jours, même si j'ai eu l'expérience avec C# il y a quelque temps. De toute façon, je fais un site web simple avec des magasins et des nouvelles. Une histoire de nouvelles pourrait être globale ou liée à un magasin. J'utilise ShopId dans le tableau des News qui peut être 0.Entity Framework: Collisions de noms (.NET MVC)

Ce que j'essaie de faire, c'est d'obtenir les nouvelles qui ne sont liées à aucun magasin, puis dans une section différente, celles qui sont liées aux boutiques (où ShopId> 0) et je voudrais les lister dans un format sympa, comme: Nom de la boutique - En-tête des nouvelles, où le nom de la boutique mènerait à la page du magasin, et le titre de nouvelles conduirait à la page de nouvelles.

Le problème est que les magasins et les nouvelles ont des champs appelés nom et Slug. J'utilise le code suivant pour récupérer les nouvelles seul:

var news = db.News.Include("User").Where(s => s.ShopId == 0) 
    .OrderByDescending(d => d.PublishDate).ToList(); 

Qui semble fonctionner correctement. Ma méthode pour récupérer nouvelles avec des magasins est actuellement le suivant:

var shopsNews = db.News.Include("User").Include("Shop").Where(s => s.ShopId > 0) 
    .OrderByDescending(d => d.PublishDate).ToList(); 

Afin de comprendre la structure de ma base de données je l'ai posté à Twitpic: http://twitpic.com/2im4xm

Toute aide serait appréciée. Merci! ~ K

+0

Je ne pense pas que ces requêtes fonctionnent. Aussi les nouvelles ne sont jamais liées à un seul magasin Les nouvelles sont en relation M: N avec les magasins. –

Répondre

3
var q = from n in db.News 
     orderby n.PublishDate desc 
     select new NewsPresentation // view model class you write 
     { 
      ShopName = n.ShopId == 0 ? "No shop, sorry!" : n.Shop.Name, 
      NewsName = n.Name, 
      UserName = n.User.Name, 
      // etc. 
     }; 
Questions connexes