存储过程的实体框架映射错误

时间:2013-07-30 10:57:26

标签: c# entity-framework mapping

我从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();

真的不知道为什么我会收到这条错误消息..

谢谢

马库斯

1 个答案:

答案 0 :(得分:0)

有时,代码生成器不会接受/刷新您的更改。当我遇到这种情况时,我会按照以下步骤操作:

  1. 从edmx
  2. 删除表格
  3. 保存.edmx
  4. 添加表格(从数据库更新模型)
  5. 保存.edmx
  6. 自己运行t4脚本(右键单击.tt文件,点击运行自定义工具)
  7. 不要编辑生成的代码,因为下次修改并保存.edmx时,您的更改将会丢失。