【问题标题】:Object datasource fetching value from two table?对象数据源从两个表中获取值?
【发布时间】:2011-05-15 17:20:50
【问题描述】:

我有一个与 objectdatasource 绑定的列表视图。我正在从 URL 获取参数。

在数据库中。我有两张桌子。 第一个表包含每行的 unquie。例如

pkey  Name   Text

1 个 xyz

2 B zzz

但在第 2 个表中将与第 1 个表具有外键,因此该值将

pkey   FKey   value

1 1 /image/1.jpg

2 1 /image/2.jpg

3 2 /image/z.jpg

4 2 /image/a.jpg

现在对于这个灵魂,我应该有两个列表视图吗? 第一个表的第一个列表视图和第二个表的第二个列表视图???

请指导我???

【问题讨论】:

  • 您的数据访问层使用什么? LINQ转SQL?对象中的普通旧 ADO.NET?

标签: asp.net sql objectdatasource


【解决方案1】:

如果您只是使用通过普通旧 ADO.NET 调用数据库的类,您可以直接在 SQL 语句中进行连接,也可以在数据库中创建一个视图,根据主键连接表/外键值并返回单个结果集,然后查询视图。如果您使用的是 ORM,则可以使用 Linq(假设 ORM 有 Linq 提供程序)来执行连接或映射视图并单独查询。

【讨论】:

  • 如果我将两个表都加入数据集,那么我将在数据集中返回两行。假设我为表 1 传递 '1' 然后它将从第一个表中获取行并加入第二个表然后我将从第二个表中获取两行...对吗???
【解决方案2】:

使用 linq 对象,您可以对表执行连接,从而在单个对象中为您提供您正在寻找的所有数据。然后可以将其放入一个列表视图中。

var dat = from x in Context.Table_1
              join y in Context.Table_2 on x.pkey equals y.fkey
              select new 
              {
                   Name = x.Name, 
                   Text = x.Text,
                   Value = y.value
              };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多