Reputation: 5580
I'm using Linq and just started working with it. My gridview was populating when I was using a single table, but now I am trying to join a Client First Name from the Client Info table.
Error is Event_Setup does not contain a definition for ClientFirstName. So it is checking Event_Setup table instead of Client_Info.
public List<EventData> GetDetails()
{
using (EMSEntities db = new EMSEntities())
{
var context = from events in db.Event_Setup
join clients in db.Client_Info on events.ClientId equals clients.ClientId
select events;
List<EventData> newEvent = new List<EventData>();
foreach (var e in context)
{
EventData test = new EventData();
test.Event_Title = e.EventTitle;
//Error on e.ClientFirstName, Event Setup does not contain Definition
(located in Client_Info table not Event Setup)
test.Name = e.ClientFirstName;
test.Start_Date = e.EventDateFrom;
test.End_Date = e.EventDateFrom;
newEvent.Add(test);
}
return newEvent;
}
}
DAL
public class EventData
{
public string Event_Title { get; set; }
public string Name { get; set; }
public DateTime? Start_Date { get; set; }
public DateTime? End_Date { get; set; }
}
Upvotes: 0
Views: 361
Reputation: 5580
Thank you for that Cory, here's what the list would like for anyone who views this questions
foreach (var e in context)
{
EventData test = new EventData();
test.Event_Title = e.Event_Title;
test.Name = e.Name;
test.Start_Date = e.Start_Date;
test.End_Date = e.End_Date;
newEvent.Add(test);
}
return newEvent;
Upvotes: 0
Reputation: 30031
This code is not doing anything with the joined clients
data. You can see it is just selecting events
:
var context = from events in db.Event_Setup
join clients in db.Client_Info on events.ClientId equals clients.ClientId
select events;
Once you get out of that LINQ statement, clients
is gone. It doesn't merge any data for you. You need to do a projection, like this:
var context = from events in db.Event_Setup
join clients in db.Client_Info on events.ClientId equals clients.ClientId
select new EventData
{
Event_Title = events.EventTitle,
Name = clients.ClientFirstName,
Start_Date = events.EventDateFrom,
End_Date = events.EventDateFrom
};
Upvotes: 1