Searching For A Record After A LINQ query
- by Justin
I'm confused to why this is happening. I'm new to LINQ so I'm clearly missing something here, that is probably pretty easy. I've looked up help on the topic, but I don't really know what to ask so I haven't found any answers that really address my question.
This doesn't work
It throws an EntityCommandExecutionException when the FirstOrDefault method is executed.
var query = from band in context.BandsEntitySet
where band.ID == 12345
select band;
string venueName = "Willis Park";
foreach (var item in query)
{
var venue = context.VenueEntitySet.FirstOrDefault(r => r.Venue.Equals(venueName));
}
This works
var query = from band in context.BandsEntitySet
where band.ID == 12345
select band;
var bandList = query.toList();
string venueName = "Willis Park";
foreach (var item in bandList)
{
var venue = context.VenueEntitySet.FirstOrDefault(r => r.Venue.Equals(venueName));
}
My question is simple: Why is the exception being thrown? And why does creating a list from the query allow me to use the FirstOrDefault method?
Exception Message: A first chance exception of type 'System.Data.EntityCommandExecutionException' occurred in System.Data.Entity.dll
I guess I am wrong in my assumption that query is a list? Then what is it exactly? I'm confused because this doesn't throw an exception:
foreach (var item in query)
{
var area = item.VenueArea;
}
I'd appreciate any help on this issue.
thanks,
Justin