Tengo una lista de identificadores de sucesos volvió de un documento XML como se muestra a continuaciónC# LINQ seleccionar de la lista
public IEnumerable<EventFeed> GetEventIdsByEventDate(DateTime eventDate)
{
return (from feed in xmlDoc.Descendants("Show")
from ev in feed.Elements("Event")
where Convert.ToDateTime(ev.Attribute("Date").Value).ToShortDateString() == eventDate.ToShortDateString()
select new EventFeed()
{
EventShowCode = feed.Attribute("Code").Value
}).ToList();
}
ahora tengo que consultar mi base de datos para que coincida con los eventos que son iguales a los eventIds regresaron del método anterior. Así que tendría algo como:
seleccionar * de eventsdb donde eventId en GetEventIdsByEventDate()
cómo puedo hacer esto utilizando LINQ
i parece que no puede conseguir ninguna de las respuestas de trabajo.
este es el método que busca los eventIds de una fuente XML
public IList<EventsDetails> GetEventIds(DateTime eventDate)
{
var eventids = (from feed in xmlDoc.Descendants("Show")
from ev in feed.Elements("Event")
where Convert.ToDateTime(ev.Attribute("Date").Value).ToShortDateString() == eventDate.ToShortDateString()
select new EventsDetails()
{
EventId = feed.Attribute("Code").Value
}).ToList();
return eventids;
}
este es el método que busca los eventos en mi base de datos
public IEnumerable<EventFeed> GetAllEventsFromDatabase()
{
var allEvents = from eventsList in GetEventsList()
select new EventFeed()
{
EventName = eventsList.Title,
EventSummary = eventsList.Introduction,
EventShowCode = eventsList.EventId,
EventImageSmall = eventsList.EventImageThumbUrl,
EventUrl = eventsList.Url,
EventSortBy = eventsList.SortOrder
};
return allEvents.OrderBy(x => x.EventSortBy);
}
y este es el método para buscar hasta cualquier eventIds coincidentes en el XML que existen en mi base de datos
public IEnumerable<EventFeed> FilteredEvents(DateTime eventDate)
{
return GetAllEventsFromDatabase().Where(p => GetEventIds(eventDate).Contains<EventsDetails>(p.EventShowCode));
}
el proyecto fracasa para construir con el siguiente error:
Error 9 Argumento '2': no se puede convertir de 'cadena' a '' Events.EventsDetails
kb: ¿Ya tienes una respuesta definitiva para esto? Podrías marcarlo para que sepamos la respuesta correcta a esto. – theraneman