2011-09-30 45 views
0

我與EF4和VS2010一起使用mysql。我首先使用模型並使用從模型函數生成數據庫來創建數據庫。與EF4中的二進制propery與MySQL - 數據類型

問題是模型中的二進制屬性被轉換爲varbinary(100)。我需要將它們轉換爲MEDIUMBLOB。

我知道我可以手動改變它,但如果這可以自動完成,這將是非常好的。

回答

0

一次性映射是否自動變化足夠? ;-)

您可以在模型設計器中執行此操作,只需從Entity RMB菜單中選擇Table mappings即可。

編輯:

這是奇怪,但它看起來像實際表映射不允許更改映射類型。

無論如何,你可以做的是改變T4模板來生成SQL。要做到這一點,找到文件:

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

,並修改線路165回()而不是由ToStoreType返回一個EdmProperty的擴展方法正確的SQL類型名稱。不幸的是,我沒有找到直接修改它的方法。

當然,這將修改所有其他項目的設置。如果不需要,可以複製原始模板,並在每個項目中通過EF Model Properties \ DDL Generation Template選擇正確的模板。

+0

我找不到任何方法來設置表映射中的結果db字段類型。你能解釋更多嗎? – Markus

+1

謝謝你指點我正確的方向。我最終在同一位置編輯了GenerateMySQL.Utility.ttinclude文件。 – Markus

+0

嘿,不知何故,我假設你使用MS SQL ;-)當然模板依賴於數據庫製造商,所以你必須採用解決方案來滿足自己的需求。 – mikus