【发布时间】:2010-06-25 09:42:00
【问题描述】:
我有一个从 xml 文档返回的事件 ID 列表,如下所示
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();
}
我现在需要查询我的数据库以匹配等于从上述方法返回的 eventIds 的事件。所以我会有类似的东西:
select * from eventsdb where eventId in GetEventIdsByEventDate()
我如何使用 LINQ 做到这一点
我似乎无法得到任何有效的答案。
这是从 XML 提要中查找 eventIds 的方法
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;
}
这是在我的数据库中查找事件的方法
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);
}
这是在我的数据库中存在的 XML 中查找任何匹配 eventIds 的方法
public IEnumerable<EventFeed> FilteredEvents(DateTime eventDate)
{
return GetAllEventsFromDatabase().Where(p => GetEventIds(eventDate).Contains<EventsDetails>(p.EventShowCode));
}
项目构建失败,出现以下错误:
错误 9 参数“2”:无法从“字符串”转换为“Events.EventsDetails”
【问题讨论】:
-
kb :您对此有明确的答案吗?能否请您标记一下,以便我们知道正确答案。