public CustomerModel GetCustomer(int CustomerId) { CustomerModel retVal = (from c in dc.tblCustomers where c.CustomerId == CustomerId select new CustomerModel { CustomerId = c.CustomerId, Invoices = GetInvoicesForCustomer(c.CustomerId) // <=== Calls another method in this class }).FirstOrDefault(); return CustomerModel; }The call to GetInvoicesForCustomer won't work in EF becuase the entire statement has to be convertable to a SQL command. Wht you have to do instead is have a series of nested queries using .Include("tablename").
>>(the learning curve I have currently is like climbing a steep mountain of loose gravel)... >> >>OK. I have a silverlight 4 app. EF datamodel of my SQL database. Domain DataService making my Entities visible. >> >>Two entity tables are Projects and Change_Requests. Projects has primary key Project_ID. Change Requests has FK Product_ID. Change Requests have a SubdivisionID (int) field. >> >>They seem to be functioning as entities correctly. The GetProjectsQuery and GetChange_RequestQuery queries seem to be functional (all built automatically when creating the datamodel and domainservice). >> >>This works fine.. >> >> EntityQuery<Project> query = (from P in _Context.GetProjectsQuery() >> where P.Proj_Name.Contains(txtFilterProjectName.Text.Trim()) >> orderby P.Proj_Name >> select P); >> LoadOperation<Project> lo = _Context.Load<Project>(query); >> >> DataGridProjects.ItemsSource = lo.Entities; >> >>GetChange_RequestQuery works ok too. >> >>Now I'm trying to do the equivalent of a join or subquery to get Projects that have Change_Requests in a specific Change_Request.SubdivisionID. >> >>I've tried.. >> >> EntityQuery<Project> query = (from p in _Context.Projects >> from c in _Context.Change_Requests >> where p.Project_ID == c.Project_ID && c.Subdivision == SubdivisionID >> select p); >> >>I get an error .. >>Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<ChangeManagement.Web.Project>' to 'System.ServiceModel.DomainServices.Client.EntityQuery<ChangeManagement.Web.Project>' >> >>OK, let's try using the Getmethods (like the one that worked above).. >> >> EntityQuery<Project> query = (from p in _Context.GetProjectsQuery() >> from c in _Context.GetChange_RequestQuery() >> where p.Project_ID == c.Project_ID >> && c.Subdivision.Equals(SubdivisionID) >> select p); >> >>Error.. >>Could not find an implementation of the query pattern for source type 'System.ServiceModel.DomainServices.Client.EntityQuery<ChangeManagement.Web.Project>'. 'SelectMany' not found. >> >>OK - let's try a join.. >> EntityQuery<Project> query = (from p in _Context.Projects >> join c in _Context.Change_Requests on p.Project_ID equals c.Project_ID >> where c.Subdivision.Equals(SubdivisionID) >> select p); >> >>Error.. >>Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<ChangeManagement.Web.Project>' to 'System.ServiceModel.DomainServices.Client.EntityQuery<ChangeManagement.Web.Project>' >> >>What am I missing?? Apparently working with more than one entity changes the query to IEnumerable rather than EntityQuery? >> >>How do I get by this? >> >>