【问题标题】:binary propery in EF4 with mysql -- datatypeEF4 中带有 mysql 的二进制属性——数据类型
【发布时间】:2014-03-13 01:19:13
【问题描述】:

我将 mysql 与 EF4 和 VS2010 一起使用。我首先使用模型,并使用 Generate database from model 函数来创建数据库。

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

我知道我可以手动更改,但如果可以自动完成,那就太好了。

【问题讨论】:

    标签: mysql model entity-framework-4


    【解决方案1】:

    一次性映射自动更改就足够了吗? ;-)

    您可以在模型设计器中执行此操作,只需从 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 生成模板选择正确的模板。

    【讨论】:

    • 我找不到任何方法在表映射中设置生成的 db 字段类型。你能解释一下吗?
    • 感谢您为我指明了正确的方向。我最终在同一位置编辑了 GenerateMySQL.Utility.ttinclude 文件。
    • 嘿,不知何故,我假设您使用 MS SQL ;-) 当然模板取决于数据库制造商,因此您必须根据自己的需要采用解决方案。
    猜你喜欢
    • 2014-11-01
    • 1970-01-01
    • 2021-06-13
    • 2016-04-20
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多