2012-08-27 111 views
8

我不能有[]當他們被添加遷移產生的,所以我試着寫一個(週期)在我的鍵名(索引,主鍵和外鍵) CSharpMigrationCodeGenerator,但不幸的是,這似乎不允許您更改外鍵或索引名稱。主鍵的名稱可以設置爲重寫創建表的一部分:實體框架5個關鍵的命名與代碼首先

protected override void Generate(
    CreateTableOperation createTableOperation, IndentedTextWriter writer) 
    { 
     createTableOperation.PrimaryKey.Name = "USE THIS NAME"; 
     base.Generate(createTableOperation, writer); 
    } 

但我真正需要的是一個方法,以確保它只是刪除句號(這意味着重寫自定義名稱發電機) - 但我看不到如何做到這一點。

+4

您是否嘗試過使用http://stackoverflow.com/questions/5082991/influencing-foreign-key-column-naming-in-ef-code-first-ctp5 –

+2

如果您希望對數據庫的詳細控制:如這裏所討論的列名屬性。數據庫首先可能是先編碼的更好解決方案。 –

回答

0

你有沒有試過追溯先用power tools生成代碼?

不僅將它從數據庫中爲您生成的代碼第一類,你還可以自定義,以處理獨特場景(例如自定義命名的邏輯來處理保留字符)生成你的對象的T4模板。我entity.tt都有每個生成的對象上面如下: -

[MetadataType(typeof(<#= efHost.EntityType.Name #>_Validation))] 

這意味着我可以有我所有的數據驗證養殖關到未在我對象的再創造重寫一個單獨的類。

+0

謝謝 - 這個問題不再存在,當時很具體。事情在過去一年隨着工具的發展而展開,因此並不再相關。 –

0

這個問題不再存在,當時是相當具體。事情在過去的一年中隨着工具的發展而變化,因此不再適用,因爲您不需要這樣解決問題。

閱讀和評論