如何返回多个表的查询实体

the*_*zer 5 c# linq wcf entity-framework

我有一个Web服务,它使用Entity Framework进行存储,并为CRUD操作公开一个公共API.

如果我有一个像User这样与Car实体有1对多关系的实体,我如何在GetUser(int userId)的Web服务方法中轻松返回如下所示的用户实例:

public class User{
  string Id;
  IEnumberable<Car> Cars;
}
Run Code Online (Sandbox Code Playgroud)

这是否在实体框架中默认工作,因为我假设在服务器端使用它时Cars属性是惰性的.

Chr*_*l52 2

实体对象是可序列化的,您将自动获得 Cars 属性。

但是,根据您的 LINQ 查询,Cars 属性可能已加载,也可能未加载。如果您始终希望在给定的 Web 方法中加载 Cars 属性,那么您应该显式加载该属性。以下是保证您加载 Cars 属性的几种方法。

1) 在 LINQ 查询中使用 Include("Cars") 方法。

2)使用投影。

3) 在 User 对象的实例上显式加载 Cars 属性。例如,

userA.Cars.Load()
Run Code Online (Sandbox Code Playgroud)