Reputation: 6038
Scenario I am playing MVC NerdDinner project and using ado.net entity data model instead on 'dbml'
I have 2 database tables Dinner & RSVP where RSVP contains DinnerID as foreign key from Dinner table.
Now when I am accessing a particular record from Dinner table, it returns a dinner object with RSVP property but there are no data with that property inspite of RSVP table having data with foreign key from Dinner table
Data
DinnerTable
ID :1
Title : '.Net Architecture'
RSVPTable
ID :1
Dinner ID: 1
AttendeeName : 'Miral'
ID :2
Dinner ID: 1
AttendeeName : 'Shivani'
So when fetching Dinner data which should return its child RSVP data, I am getting RSVP property with 0 records.
Upvotes: 1
Views: 1523
Reputation: 6038
Correct syntax
Table : 'Dinner' & 'RSVP'
var dinner =_nerdDinnerEntities.Dinner.Include("RSVP").Where(dd => dd.ID == ID).FirstOrDefault();
Your require to write Include before FirstOrDefault.
'Include' is a method on Entity over here 'Dinner',and it includes table name containing the foreign key i.e. 'RSVP' and the property 'AttendeeName'.
I tried passing one of the property 'AttendeeName' but it didnt worked.
Upvotes: 1
Reputation: 19583
EF is a little different from LINQ. In your query, add something like
var dinner = context.Dinners.First(d => d.DinnerID = id).Include("Attendees");
This will tell EF to attach the associated Attendees objects in a single fetch, doing all of the necessary joins for you.
Upvotes: 2