我正在使用mysql和EF4和VS2010。我首先使用模型并使用从模型生成数据库函数来创建数据库。
问题是模型中的二进制属性被转换为varbinary(100)。我需要将它们转换为MEDIUMBLOB。
我知道我可以手动更改它,但如果可以自动完成,那将非常棒。
答案 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生成模板选择正确的模板。