Question

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.

Was it helpful?

Solution 2

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top