Creo que esa es la terminología correcta ...¿Es posible enlazar datos usando un tipo anónimo?
Básicamente, tengo un control de repetidor y una consulta de Linq que recupera algunos elementos. Por lo general, me gustaría acceder directamente a la consulta y usar Eval para completar la plantilla con los resultados.
Sin embargo, no aparece en el formato correcto, por ejemplo, si EndDate es nulo (¿es DateTime?), Entonces quiero sustituirlo por "Present". Estoy usando solo un par de las propiedades en los objetos de resultados de la consulta.
Me pregunto si hay una solución como:
[pseudo madeup code]
var query = getResults();
List<anonymous> anonList = new List();
foreach (var q in query)
{
string myEndDate = "";
if (q.EndDate.HasValue)
{ myEndDate = q.EndDate.ToString(); }
else
{ myEndDate = "Present"; }
anonList.items.add(new { name=q.name, enddate=myEndDate };
}
repeater.Datasource = anonList;
continuación
<div><%#Eval("enddate")%></div>
¿Hay alguna manera de hacerlo sin toda esa lógica de ser en línea? Puede hacerlo bastante ilegible, especialmente si está combinando dos cadenas que pueden ser nulas, por ejemplo 'fullname = q.user.title + q.user.firstname + q.user.lastname;' si el usuario es nulo, fallará , y hacer tres controles en línea además de combinarlos en una sola variable es bastante horrible. – NibblyPig