参考Linq-to-SQL中附表的字段

时间:2014-05-22 10:09:57

标签: c# sql linq

我正在创建一个Windows窗体应用程序来显示我的数据库中的所有数据。

因此,数据库有一个名为 Items 的表,一个名为 Tags 的子表,这两个表具有1:M的关系。我可以在我的Project中添加一个Linq-to-SQL类,然后创建一个datagrid来访问主Items表而没有任何问题。

查看由Linq-to-SQL创建的 Items类的属性,我可以看到它附加了 Tags 表(EntitySet),但是我无法访问任何标签字段!有没有办法做到这一点?

我想在datagrid中创建一个名为TagsList的新列,对于每个Item,我想显示所有相应 Tags.Name 的连接列表。我想我可以做一些事情,比如在Items类中添加一个新属性:

public partial class Items
  {
    public string TagsList
      {
        return this.Tags.Name.Aggregate((x, y) => x + ", " + y));
      }
  }

但显然,这不起作用,因为没有定义。帮助

1 个答案:

答案 0 :(得分:1)

我假设Items.Tags类型为ICollection<Tags>(或IQueryableIEnumerable,我记不清哪个linq-to-sql使用了) ItemsTags具有一对多的关系。如果不是这种情况,请告诉我,我会删除或编辑我的答案。

Name是每个人Tags的属性,而不是Tags.Name不正确的集合。

尝试以下方法:

return this.Tags.Select(tag => tag.Name).Aggregate((x, y) => x + ", " + y));

Tags.Select(tag => tag.Name)将返回IEnumerable<string>个名称,然后汇总。