我有一个 Web 服务,它使用 Entity Framework 进行存储并公开一个用于 CRUD 操作的公共(public) API。
如果我有一个实体,例如 User,它与 Car 实体具有一对多的关系,我如何轻松地在我的 GetUser(int userId) 网络服务方法中返回一个如下所示的用户实例:
public class User{
string Id;
IEnumberable<Car> Cars;
}
这在 Entity Framework 中默认工作吗,因为我假设 Cars 属性在服务器端使用时是惰性的。
最佳答案
实体对象是可序列化的,您将自动获得 Cars 属性。
但是,根据您的 LINQ 查询,Cars 属性可能已加载也可能未加载。如果您总是想在给定的 Web 方法中加载 Cars 属性,那么您应该显式加载该属性。以下是保证您加载 Cars 属性的几种方法。
1) 在 LINQ 查询中使用 Include("Cars") 方法。
2) 使用投影。
3) 在 User 对象的实例上显式加载 Cars 属性。例如,
userA.Cars.Load()
关于c# - 如何返回一个查询多个表的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4959739/