c# - 如何返回一个查询多个表的实体

标签 c# wcf linq entity-framework

我有一个 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/

相关文章:

linq - EF中如何比较区分大小写的字符串?

c# - WCF - 客户端和 > 服务绑定(bind)可能不匹配

c# - 方法错误无法计算表达式

c# - 组合/聚合许多底层服务响应的 WCF 路由器

c# - 如何摆脱 app.config 并将其全部移至代码中?

wcf - 无法自动单步进入服务器。远程程序无法调试

c# - 使用 Windows 语音识别时麦克风音量的最小截止值

c# - WCF 操作合约返回列表<CustomType>

sql - 如何在 LINQ 中设置结果集的返回类型

c# - LINQ 对象 : How to join different properties in the same List of objects