0

我正在使用 Telerik 开放式访问,我有三种不同的数据模型,例如:

UserEntitiesModel->account_details
ProfileEntitiesModel->biographic_details
ContactsEntitiesModel->contact_groups

我在不同的数据模型中有三个不同的表。我想从所有表中加载数据;我使用连接并编写了 lambda 表达式,但它引发了异常

用户代码未处理的 InvalidOperationException

你能告诉我如何从不同数据模型的不同表中检索数据吗?

4

1 回答 1

1

您会看到,不同的模型 (rlinq) 文件生成不同的 Context 对象(从 OpenAccessContext 派生的对象),它们又使用不同的内部结构并且完全独立。这意味着您不能在 LINQ 查询中组合它们。

LINQ 查询是针对每个上下文的,并且(通常)在 sql server 上执行。OpenAccess 无法知道两个模型如何关联以及它们是否来自同一个数据库实例。

话虽如此,如果数据模型只是同一数据库的不同部分(并使用相同(或相似)的连接字符串),您应该能够将模型聚合到单个上下文对象中。上下文对象使用 MetadataSource 进行初始化,您可以使用AggregateMetadataSource将您拥有的模型合并为一个模型。您将需要实现自己的 Context 对象,这需要更多的工作,但它应该可以工作。

如果您不想遇到这样的麻烦,您可以在 LINQ 查询中使用它们之前使用 .ToList() 从表中枚举结果。然而,这意味着您将在客户端上检索更多您不需要的数据。

于 2012-07-16T07:59:14.800 回答