EF4中的二进制属性,带有mysql - 数据类型

时间:2011-09-30 08:14:56

标签: mysql model entity-framework-4

我正在使用mysql和EF4和VS2010。我首先使用模型并使用从模型生成数据库函数来创建数据库。

问题是模型中的二进制属性被转换为varbinary(100)。我需要将它们转换为MEDIUMBLOB。

我知道我可以手动更改它,但如果可以自动完成,那将非常棒。

1 个答案:

答案 0 :(得分:0)

一次性映射会自动更改吗? ; - )

您可以在模型设计器中执行此操作,只需从Entity RMB菜单中选择Table mappings,。

修改

这很奇怪,但看起来实际上Table Mappings不允许更改映射类型。

无论如何,您可以做的是更改T4模板以生成SQL。为此,请找到文件:

VS_BASE_DIR\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGenSSDLToSQL10.tt

并修改第165行以返回正确的SQL Type名称,而不是EdmProperty的ToStoreType()扩展方法返回的名称。不幸的是我没有找到直接修改它的方法。

当然,这将修改所有其他项目的设置。如果不需要,您可以制作原始模板的副本,并在每个项目中通过EF模型属性\ DDL生成模板选择正确的模板。