.NET 3.5 Linq数据源和联接

时间:2020-03-05 18:54:20  来源:igfitidea点击:

一直在尝试.NET 3.5附带的新动态数据站点创建工具。该工具使用LINQ数据源(使用.dmbl上下文文件作为参考)从数据库中获取数据。我对自定义数据网格感到困惑,但是我需要显示多个表中的数据。有谁知道如何使用LINQ Datasource对象执行此操作?

解决方案

回答

我们不能在一个数据网格上放置多个对象/数据源。我们将必须构建一个单独的ConceptObject,其中结合了零件实体的公开属性。尝试使用DB-> L2S实体-> ConceptObject。如果数据库模型与ConceptObject逐字段匹配,则我们必须做得非常出色。

回答

(编辑误解了这个问题,修改了我对以下内容的回答)

LinqDataSource可以指向一个视图,该视图使我们可以克服无法在实际元素中表达Join的问题。从"如何:创建映射到表和视图的LINQ to SQL类(O / R设计器)"中:

The O/R Designer is a simple object relational mapper because it supports only 1:1 mapping relationships. In other words, an entity class can have only a 1:1 mapping relationship with a database table or view. Complex mapping, such as mapping an entity class to multiple tables, is not supported. However, you can map an entity class to a view that joins multiple related tables.

回答

当我们要执行更复杂的Linq并将网格绑定到ObjectDataSource时,最好使用ObjectDataSource。
但是,我们确实需要当心可能会给我们带来麻烦的匿名类型,但是任何事情都是可能的...

回答

如果这些表是通过外键连接的,那么我们可以轻松地引用这两个表,因为它们会被linq自动连接(如果我们在dbml中查找并且有箭头连接表,则很容易看到),如果没有,请查看可以加一个。

为此,我们可以使用如下所示的内容:

<%# Bind("unit1.unit_name") %>

在表中的何处," unit"具有引用另一个表的外键,我们可以拉出" unit_name"的" unit"属性

我希望这是有道理的。