2010-09-03 6 views
1

Dans monMVC requête LINQ question

public ActionResult Active() 
{ 
    var list = _entity.CALL_UP.Where(s => s.STATE == ICallUpsState.FULLY_SIGNED) 
           .Where(f => f.START_DATE <= DateTime.Today 
             && f.END_DATE >= DateTime.Today) 
           .ToList(); 
    return View(list); 
} 

Ce retourne un IEnumerable<CallUP> avec le résultat correct, mais je veux USER_ID à afficher comme nom d'utilisateur qui est dans une autre table. Comment je fais ça?

Par exemple:

<%: String.Format("{0:F}", item.CREATED_BY_USER_ID) %> this is an ID 

le nom d'utilisateur réel est stocké dans une autre table, je veux afficher ce nom d'utilisateur au lieu

+0

"mais je veux une pièce d'identité de la colonne (USER_ID) à afficher" Désolé, je ne pouvais pas analyser cette . Que demandez-vous? –

Répondre

0

Une idée:

joindre à la table Users dans votre requête résultat retournant un objet personnalisé avec la construction select new:

Quelque chose comme ceci:

// Join on the ID properties. 
var query = from c in list 
      join u in users on c.CREATED_BY_USER_ID equals u.ID 
      select new { c.STATE, c.Property2, c.Property3, u.Name }; 

Jetez un oeil à ces pages pour en savoir plus:

http://msdn.microsoft.com/en-us/vcsharp/ee908647.aspx#crossjoin

C# Join Example (LINQ)