2013-07-30 72 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您的更改将会丢失。

相关问题