0

我使用EF 5和SQL Server 2005,機型第(排序)。實體框架生成數據庫模式(SQL)與默認表中的值

搜索結果排序的,我的意思是我通常建立我在SQL Server設計模式,但導入架構到EF讓我有一種視覺的視圖。經常出現往返。但是,我注意到當我嘗試生成基於EF模型的數據庫模式時,它跳過了作爲默認值指定給我的Guid ID的所有NEWID()默認值,但它不包含跳過類型爲int的標識字段。

我發現這個職位解釋這樣做的原因: Entity Framework 4 and Default Values

但是,它並沒有回答我的問題:我如何獲得實體框架來生成與NEWID的缺省值的SQL DDL數據庫模式()爲我的uniqueidentifier類型?

注:

我不關心如何從POCO實體設置它們等等(有大量描述該職位) - 我所關注的是獲得SQL DDL生成正確的,所以我可以播種數據庫不用擔心這些值會丟失。

回答

2

使用實體框架遷移,你可以使用GUID column builder及其DefaultValueSql參數。該參數的值可以是字符串"NEWID()"。這應該照顧正確的DDL生成。

接下來你應該聲明這些屬性數據庫生成的使用屬性或流利模型構建,使EF忽略你的波蘇斯(這將是空的新對象)設置的值。

+0

感謝。實體框架遷移是代碼第一,所以我不知道這是否會幫助任何人誰碰到這個問題來。無論如何,我最終都是在幾個月前切換到代碼,最近纔開始編寫第一個遷移代碼。 +1爲你的努力,但只會接受一個模型的答案作爲正確的答案。 – NightOwl888 2013-11-05 19:05:04

+0

你是對的,我們很久以前就轉換了,我甚至沒有意識到。好吧 ;)。 – tne 2013-11-05 20:03:25

相關問題