Vac*_*ano 23 entity-framework entity-framework-4
我有几个列,我从Int更改为BigInt.
我打开了我的EF模型并做了一个'从数据库更新模型',并期望看到这些列现在是Int64s.但他们仍然是Int32s.
(为了确定,我跑了好几次.)
我仔细检查了我的数据库,列绝对是BigInts.
那么......"从数据库更新模型"不适用于更改数据类型吗?是否需要手动应用?
E.J*_*nan 44
不幸的是,你需要从你的模型中删除这些项目,然后重新添加它们 - 至少这是我设法完成工作的唯一方法.
至少有一个第三方工具可以帮助解决这个问题,但尚未亲自尝试过.
我正在使用VS2008 SP1.如果更改edmx的"ModelView"(CSDL)中的数据类型,则会发生错误,因为"DatabaseModel"(SSDL)未更新.您必须手动编辑*.edmx(XML).这并不像听起来那么难.您只需搜索VS提供的"错误列表"属性(在文件中搜索可能是最佳解决方案).转到出现错误数据类型的行并修复它.
例如,您在数据库中将float更改为nvarchar(50) - >转到您的模型并将Double更改为String - > validate - > Error .... - >搜索属性并进行以下更改:
<Property Name="YourChangedProperty" Type="float" />
Run Code Online (Sandbox Code Playgroud)
至
<Property Name="YourChangedProperty" Type="nvarchar" MaxLength="50" />
Run Code Online (Sandbox Code Playgroud)
如果您确切知道数据库中已更改的内容,则此方法非常有效.如果您进行了无数次更改,则必须使用某些DB比较工具分析更改或重新生成整个模型.
不是很好.但它"有效".
小心M.
| 归档时间: |
|
| 查看次数: |
24320 次 |
| 最近记录: |