一直在试用 .NET 3.5 附带的新动态数据站点创建工具。该工具使用 LINQ 数据源从数据库中获取数据,并使用 .dmbl 上下文文件作为参考。我对自定义数据网格很感兴趣,但我需要显示来自多个表的数据。有谁知道如何使用 LINQ 数据源对象来做到这一点?
4 回答
(编辑误解了这个问题,修改了我对以下内容的回答)
您的 LinqDataSource 可以指向一个视图,这使您可以克服无法在实际元素中表达 Join 的问题。从“如何:创建映射到表和视图的 LINQ to SQL 类(O/R 设计器)”:
O/R Designer 是一个简单的对象关系映射器,因为它仅支持 1:1 映射关系。也就是说,一个实体类与数据库表或视图只能有1:1的映射关系。不支持复杂的映射,例如将一个实体类映射到多个表。但是,您可以将实体类映射到连接多个相关表的视图。
如果表通过外键连接,您可以轻松引用这两个表,因为它们将由 linq 自动连接(如果您查看 dbml 并且有一个连接表的箭头,您可以轻松看到) - 如果没有,请查看是否你可以加一个。
为此,您可以使用以下内容:
<%# Bind("unit1.unit_name") %>
在表中,'unit' 有一个引用另一个表的外键,你拉取了 'unit_name' 的'unit'属性
我希望这是有道理的。
您不能在一个数据网格上放置多个对象/数据源。您将必须构建一个组合了部件实体的公开属性的概念对象。尝试使用 DB -> L2S 实体 -> ConceptObject。如果 DB 模型与 ConceptObject 字段匹配,您一定非常做作。
当您想要执行更复杂的 Linq 并将您的 Grid 绑定到 ObjectDataSource 时,您最好使用 ObjectDataSource。但是,您确实需要注意可能会给您带来麻烦的匿名类型,但任何事情都是可能的......