2012-04-27 44 views
1

我在VS 2010報表設計器中做了一個報表,數據的主要來源是Lines實體。但我需要來自另一個實體Parts的額外字段。所以我添加的部分班線與額外的屬性,像這樣:屬性沒有在部分實體類的報表設計器中顯示

public partial class Line 
{ 
    public string ShelfLocation 
    { 
     get 
     { 
      using (RSContext rs = new RSContext()) 
      { 
       return rs.Parts.First(x => x.Code == this.Part).ShelfLocation; 
      } 
     } 
    } 

問題是,我仍然無法看到從報表設計這種額外的領域:

enter image description here

我怎樣才能達致這沒有創造另一種觀點?

非常感謝提前。

EDIT 1(無論是在相同的命名空間):

enter image description here

+0

你確定分部類與原始分類是在同一個命名空間嗎? – 2012-04-27 15:14:09

+0

@FelicePollano是在相同的命名空間。 – sprocket12 2012-04-27 15:26:53

+0

我和Linq2Sql有完全相同的問題。你能解決它嗎?我的意思是我有一些額外的屬性,我不想手動添加到報表定義中。 – Sergey 2016-08-23 06:23:36

回答

1

,但暫時我手動添加此報告和它的工作:

<Fields>  
... 
    <Field Name="ShelfLocation"> 
      <DataField>ShelfLocation</DataField> 
      <rd:TypeName>System.String</rd:TypeName> 
    </Field> 
</Fields> 
0

你需要確保這兩個類都在同一個命名空間。

您可以考慮創建型線的對象,並驗證你可以看到你添加新的屬性:我不知道是否有更好的解決辦法

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? 
+0

是的,它通過了上述測試。上下文和部分類都在RS命名空間中。 – sprocket12 2012-04-27 15:26:17

0

我有Linq2Sql完全相同的問題。報表設計器中不顯示自定義分部類的所有屬性。

爲了解決這個問題

  1. 打開*的.dbml的屬性對話框,並清除「自定義工具」屬性。然後* .designer.cs文件消失。
  2. 使用sqlmetal.exe在 '預建事件' 產生的*了.Designer.cs手動

    sqlmetal /命名空間: 「$(項目名)」 /代碼:「$(PROJECTDIR )DataModel.designer.cs」 「$(PROJECTDIR)DataClasses1.dbml」

這些操作後,附加屬性被成功識別。

相關問題