for code first models:
public class User
{
[Key]
public long Id { get; set; }
public virtual List<Address> Addresses { get; set; }
public string UserName { get; set; }
}
public class Address
{
[Key]
public long Id { get; set; }
public string Reference { get; set; }
public string Street { get; set; }
}
I created entity framework model from code first. Its working fine. Now i want to query select for User table using linq.
public IEnumerable GetLicensee()
{
using (var db = new DataModelContext())
{
IEnumerable query = (from b in db.User
select new { UserName= b.UserName,Address=b.Addresses }).ToList();
return query;
}
}
It's not returning address table, only returns username.
EF by default turned on Lazy Loading, so You need use eager loading by call Include()
, this method also get releated Entities, in your case Include("Addresses")
method get releated Adressess
Eager loading is the process whereby a query for one type of entity also loads related entities as part of the query. Eager loading is achieved by use of the Include method.
public IEnumerable GetLicensee()
{
using (var db = new DataModelContext())
{
IEnumerable query = (from b in db.User.Include("Addresses")
select new { UserName= b.UserName,Address=b.Addresses }).ToList();
return query;
}
}
Here find more