在Linq-to-SQL中引用附加表's字段
本文关键字:字段 Linq-to-SQL 引用 | 更新日期: 2023-09-27 18:04:46
我正在创建一个windows窗体应用程序来显示我的数据库中的所有数据。
因此数据库有一个名为Items的表,一个名为Tags的子表,这两个表具有1:M关系。我可以在我的Project中添加一个Linq-to-SQL类,然后创建一个数据网格来访问主Items表,而不会出现任何问题。
查看由Linq-to-SQL创建的Items类的属性,我可以看到它有Tags表附加到它(EntitySet),但我无法访问任何Tags字段!有什么办法可以做到吗?
我想在数据网格中创建一个名为TagsList的新列,并且对于每个Item,我想显示所有相应的Tags.Name的串联列表。我想我可以做一些事情,比如向Items类添加一个新属性,如下所示:
public partial class Items
{
public string TagsList
{
return this.Tags.Name.Aggregate((x, y) => x + ", " + y));
}
}
但显然,这不起作用,因为它没有定义。帮助吗?
我假设Items.Tags
是ICollection<Tags>
类型(或IQueryable
或IEnumerable
,我不记得哪个linq-to-sql使用),因为你说Items
和Tags
有一对多关系。如果不是这样,请告诉我,我会酌情删除或编辑我的答案。
Name
是每个单独的Tags
的属性,而不是集合,这就是为什么Tags.Name
是不正确的。
尝试以下操作:
return this.Tags.Select(tag => tag.Name).Aggregate((x, y) => x + ", " + y));
Tags.Select(tag => tag.Name)
将返回名称的IEnumerable<string>
,然后您将其聚合