我想弄清楚什麼是最好的方式去實體框架代碼生成與「數據庫第一」的方法。我希望模型的完整主要描述是實際的數據庫模式,註釋存儲在數據庫中的表或擴展屬性中。對模型第一或代碼優先方法不感興趣。不反對編寫自定義代碼來實現它是否會產生最高質量的解決方案。這裏有一些想法:實體框架代碼生成
(1)從數據庫生成EDMX。使用自定義代碼向EDMX添加關於唯一性和其他當前未內置到EF中的約束的註釋。使用T4模板從EDMX生成代碼。 (2)編寫一個自定義工具,從數據庫中生成「代碼優先」類。解決方案中沒有EDMX文件。
(3)還有其他的東西嗎?
似乎#1需要更深入的EF知識和更多的實際工作,而不是#2,我現在反對,如果有顯着的好處。
有什麼建議嗎?
你知道你可以做「代碼優先」,而不是生成架構,不是嗎?您所要做的就是創建類以匹配數據庫模式,但您必須在兩個地方進行任何更改。 – tvanfosson 2012-04-01 13:58:57
@Ivan,關於「您所要做的就是創建類以匹配數據庫模式」,問題是直接生成此代碼還是將EDMX文件放在中間。 – 2012-04-01 14:09:25
我喜歡代碼首先給出的類控件的控件,並且首先發現代碼比設計器自動生成的代碼更容易測試。事實上,在代碼首次發貨之前,我不會使用EF;使用設計器的Linq2SQL更好。現在,我首先使用EF代碼作爲MSSQL的第一選擇。不幸的是,我沒有發現任何這些方法足以在IDE(設計器或代碼)中設計整個模式,並且通常使用DB-first和代碼優先模型。 – tvanfosson 2012-04-01 14:18:32