.net - DomainService 是否在执行 linq 之前加载所有实体?

标签 .net vb.net wcf linq silverlight

我的 Silverlight 应用程序使用 RIA Web 服务与使用 Entity Framework 模型的 DomainService 进行交互。

在服务中我有一些简单的东西,比如:

Public Function GetCompanyByID(companyID As Integer) As Company
    Return ObjectContext.Companies.FirstOrDefault(Function(c) c.ID = companyID)
End Function

我的问题是所有的公司都是先从数据库加载,然后用LINQ查询并发送给客户端吗?

我问是因为数据库可能会增长,并且可能会在公司实体中引入一些导航属性的预加载。因此首先加载所有公司可能需要很长时间。

最佳答案

RIA ObjectContext 操作 IQueryable。您可以从方法域服务方法返回 IQueryable,以允许客户端“linq 到客户端模型实体”通过表达式树序列化转换为服务器端“linq 到实体/db”(默认情况下是惰性的)。您可以通过 turning off 'LazyLoadingEnabled' 启用预加载.

另见 Code-First in RIA (DbContext) - 这是您可以完全支持/控制您选择的 ORM 的方式

关于.net - DomainService 是否在执行 linq 之前加载所有实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15337956/

相关文章:

c# - 在外部进程中调试 COM 对象

c# - 什么约定将 poco 属性自动映射到列?我怎样才能禁用该自动映射?

java - 在java中解压缩在Visual Basic中压缩的字符串

mysql - 如何使用 VB.Net 中已定义的列填充 datagridview

WCF、REST、SSL、客户端、自定义证书验证

c# - Y型任务执行

.net - Math.Round(double,decimal) 是否总是返回一致的结果

vb.net - 处理错误的更好方法

wcf - 由于内部错误,服务器无法处理请求。在 WCF 错误中

c# - 在并行运行 RESTFul 服务的同时通过 WCF 运行 SOAP API