我在VS 2010报表设计器中生成报表,数据的主要来源是Lines
实体。但是我需要来自另一个实体Parts
的额外字段。所以我添加了一个部分类的Line和额外的属性,如:
public partial class Line
{
public string ShelfLocation
{
get
{
using (RSContext rs = new RSContext())
{
return rs.Parts.First(x => x.Code == this.Part).ShelfLocation;
}
}
}
问题是我仍然无法从报表设计器中看到这个额外的字段:
如何在不创建其他视图的情况下实现此目的?
非常感谢提前。
编辑1(两个在同一名称空间中):
答案 0 :(得分:1)
我不知道是否有更好的解决方案,但目前我手动将其添加到报告中并且有效:
<Fields>
...
<Field Name="ShelfLocation">
<DataField>ShelfLocation</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
答案 1 :(得分:0)
您确实需要确保两个类都位于同一名称空间中。
您可以考虑创建一个Line类型的对象,并验证您是否可以看到您添加的新属性:
var testLine = new Line();
testLine.ShelfLocation // <-- Does ShelfLocation show up as a valid property? Do your other properties like Debit, Id, etc. also show up?
答案 2 :(得分:0)
我对Linq2Sql有完全相同的问题。自定义分部类中的所有属性在报表设计器中都不可见。
解决问题
在&#39;预构建活动&#39;中使用sqlmetal.exe。手动生成* .designer.cs
sqlmetal / namespace:&#34; $(ProjectName)&#34; /code:"$(ProjectDir)DataModel.designer.cs" &#34; $(PROJECTDIR)DataClasses1.dbml&#34;
在这些操作之后,成功识别了其他属性。