Linq ReportViewer-对象数据源,嵌套对象返回#错误

Linq ReportViewer-对象数据源,嵌套对象返回#错误,linq,microsoft-reporting,Linq,Microsoft Reporting,我使用的是来自LINQ的数据集,因此在LINQ中也表示链接表,尽管我无法访问它们的字段,但只能访问foreignkey.value。我无法像普通LINQ一样钻取对象字段 有人知道这是否可能吗 示例 我似乎解释得不够,所以让我试着更好地解释。我有一个类STranline(Stock Tranline)可用的字段之一是Stock(另一个类),尽管在报表设计器中Stock可用时,我没有选项来查看库存中有哪些字段可用。例如stock.StkCode或stock.StkDesc这些示例将有助于澄清我试图做

我使用的是来自LINQ的数据集,因此在LINQ中也表示链接表,尽管我无法访问它们的字段,但只能访问foreignkey.value。我无法像普通LINQ一样钻取对象字段

有人知道这是否可能吗

示例


我似乎解释得不够,所以让我试着更好地解释。我有一个类STranline(Stock Tranline)可用的字段之一是Stock(另一个类),尽管在报表设计器中Stock可用时,我没有选项来查看库存中有哪些字段可用。例如stock.StkCode或stock.StkDesc这些示例将有助于澄清我试图做的事情(如果一开始确实可行)。

您需要使用一个可数扩展方法来访问行。看见另请参见第页以获取参考。

您需要使用可计算扩展方法来访问行。看见另请参阅第页以获取参考。

我找到了解决方案,解释了为什么在


解决方案显示所有对象都必须是可序列化的。

我找到了解决方案,解释了为什么在


解决方案表明所有对象都必须是可序列化的。

我找到了一个有效的解决方案

如果您有一个包含大量信息的报告,那么对所有类和子类使用Serializable将使呈现过程太慢

作为使用Serializable的替代方法:

只需为基类创建一个分部类,并使用要显示的嵌套属性创建一个新的字符串属性,如果不同,则将属性强制转换为字符串

例如:

public partial class STranline
{
    public string StockCode => Stock.StkCode;
    public string StockDescription => Stock.StkDesc;
}

我找到了解决这个问题的有效方法

如果您有一个包含大量信息的报告,那么对所有类和子类使用Serializable将使呈现过程太慢

作为使用Serializable的替代方法:

只需为基类创建一个分部类,并使用要显示的嵌套属性创建一个新的字符串属性,如果不同,则将属性强制转换为字符串

例如:

public partial class STranline
{
    public string StockCode => Stock.StkCode;
    public string StockDescription => Stock.StkDesc;
}