繁体   English   中英

EF将元数据文件中的bigint列转换为int32

[英]EF turned bigint column to int32 in metadata file

对于我数据库中的表SomeTable ,EF将元数据文件中bigint类型的主键转换为int32类型的属性,而其等效的,模型生成的部分类对于同一字段具有long类型的数据类型。 当我尝试从SomeTable加载数据时,这会产生冲突。 在运行时引发以下异常...

System.MissingMethodException was unhandled by user code
  HResult=-2146233069
  Message=Method not found: 'Int32 RMSDataLibrary.SomeTable.get_ID()'.
  Source=GUI_Forms
  StackTrace:
       at GUI_Forms.DataRetrieval.populateData()
       at GUI_Forms.DataRetrieval.DataRetrieval_Load(Object sender, EventArgs e) in E:\RMS\C#\RMS-ESS\GUI_Forms\DataRetrieval.cs:line 25
       at System.Windows.Forms.Form.OnLoad(EventArgs e)
       at System.Windows.Forms.Form.OnCreateControl()
       at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       at System.Windows.Forms.Control.CreateControl()
       at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
  InnerException: 

我无法修改元数据文件以更正数据类型。 为什么可能会产生这种冲突? 对此有什么解决方案吗?

事实证明,不是将EF而是将数据库主键的数据类型从int更改为bigint的数据库人员 :)但是以某种方式从我的.edmx中删除了该表,然后更新了模型,这并未对元数据文件带来任何更改(EF错误???)即使删除.edmx的所有内容并进行更新也没有任何效果。

沮丧的是,我删除了创建的整个ADO.NET EF数据模型文件夹,然后从头开始重新创建了该文件夹。 并且它解决了问题。

我认为EF应该在更新.edmx文件时更新元数据文件,或者应该允许程序员对其进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM