属性类型错误的模型

时间:2018-11-24 12:14:59

标签: c# oracle entity-framework

我是实体框架的新手。我从数据库优先方法开始,该方法创建了与所选表相对应的类。我正在使用 WPF 。不幸的是,EF6映射类时发生了问题。字段的分配类型为 byte ,而在某些情况下,该值超过了字节限制。因此,我想用int或double替换它。如何更改模型字段类型而不对使用的数据库进行任何更改?

namespace DataChrome{
  public partial class REGISTRY_MEST{
    public byte MEST { get; set; } //Wrong typed field 
    public string MESTNAME { get; set; }
    public Nullable<byte> IDSTRAT { get; set; }
    public Nullable<int> MESTOLD { get; set; }
  }

}

2 个答案:

答案 0 :(得分:1)

因此,花了7个小时解决这个问题,我找到了正确的解决方案。您只需要在appconfig文件中设置用户映射规则即可。有关更多详细信息:visit this page

答案 1 :(得分:0)

应该可以通过编辑edmx模型来更改类型:单击edmx模型内类的MEST属性,然后在“属性”窗口中相应地设置“类型”并保存模型。

这样做会带来风险,因为如果您仅以这种方式更改类型,则可能会为列存储太大的值。您注意到您将Oracle用作基础数据库,因此EF为该属性生成“错误”类型很可能就是这种情况。

如果您完全确定数据库将接受扩展类型(int,double),那么应该安全地编辑属性,就像我在开始时提到的那样。否则,您将不得不更改数据库并重新生成类-您可能需要从模型中删除该类并再次添加它,因为并非所有对表的更改都被自动更新过程所吸收。