【发布时间】:2014-03-13 01:19:13
【问题描述】:
我将 mysql 与 EF4 和 VS2010 一起使用。我首先使用模型,并使用 Generate database from model 函数来创建数据库。
问题是模型中的二进制属性被转换为 varbinary(100)。我需要将它们转换为 MEDIUMBLOB。
我知道我可以手动更改,但如果可以自动完成,那就太好了。
【问题讨论】:
标签: mysql model entity-framework-4
我将 mysql 与 EF4 和 VS2010 一起使用。我首先使用模型,并使用 Generate database from model 函数来创建数据库。
问题是模型中的二进制属性被转换为 varbinary(100)。我需要将它们转换为 MEDIUMBLOB。
我知道我可以手动更改,但如果可以自动完成,那就太好了。
【问题讨论】:
标签: mysql model entity-framework-4
一次性映射自动更改就足够了吗? ;-)
您可以在模型设计器中执行此操作,只需从 Entity RMB 菜单中选择 Table mappings 即可。
编辑:
这很奇怪,但实际上 Table Mappings 似乎不允许更改映射类型。
无论如何,你可以做的就是改变T4模板来生成SQL。为此,请查找文件:
VS_BASE_DIR\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGenSSDLToSQL10.tt
并修改第 165 行以返回正确的 SQL 类型名称,而不是 EdmProperty 的 ToStoreType() 扩展方法返回的名称。不幸的是我没有找到直接修改它的方法。
当然,这将修改所有其他项目的设置。如果不需要,您可以复制原始模板并在每个项目中通过 EF 模型属性\DDL 生成模板选择正确的模板。
【讨论】: