2013-07-30 92 views
0

我從我的C#代碼調用SP。 Everythig一直工作,直到我想改變SP的結果類型。存儲過程的實體框架映射錯誤

像從Int32到String的一些值和從Double到Decimal的一些值。

現在我在調用時或調用sp的映射時會出現此錯誤。

German: 

Die Eigenschaft 'VBENr' bei 'Report_Result' konnte nicht auf einen 'Int32'-Wert festgelegt werden. Sie müssen diese Eigenschaft auf einen Nicht-NULL-Wert des Typs 'String' festlegen. 

English: 

The Property 'VBENr' in 'Report_Result' could not be set to a 'Int32' value. You must set this property to a non-null value of type 'String'. 

我不能做這個改變,因爲它已經是設計師了。 我看了一些關於設計師的工作不正常,所以我改變了價值觀也在designer.cs和*的.edmx

例如VBENr值:

EDMX:

 <Property Type="String" Name="VBENr" Nullable="false" /> 

Deisgner的.cs:

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] 
     [DataMemberAttribute()] 
     public global::System.String VBENr 
     { 
      get 
      { 
       return _VBENr; 
      } 
      set 
      { 
       OnVBENrChanging(value); 
       ReportPropertyChanging("VBENr"); 
       _VBENr = StructuralObject.SetValidValue(value, false); 
       ReportPropertyChanged("VBENr"); 
       OnVBENrChanged(); 
      } 
     } 
     private global::System.String _VBENr; 
     partial void OnVBENrChanging(global::System.String value); 
     partial void OnVBENrChanged(); 

真的不知道爲什麼我剛開此錯誤消息..

謝謝

馬庫斯

回答

0

有時代碼生成器將不接受/刷新更改。當發生這種情況對我來說,我遵循這個步驟:

  1. 從EDMX刪除表
  2. 保存的.edmx
  3. 添加表(從數據庫更新模型)
  4. 保存的.edmx
  5. 獨自運行T4腳本(右鍵單擊該文件.TT,打運行自定義工具)

,因爲下一次修改並保存,不要編輯生成的代碼。 edmx您的更改將會丟失。

相關問題