2009-07-24 57 views
5

This question強調您不能使用服務器端生成的GUID與實體框架。但是,我想要在數據庫API的DAL級別處理GUID的生成(即,調用實體的構造函數時,我希望將實體的ID初始化爲新的GUID)。我的計劃是編寫一個小工具來生成一堆代碼文件,這些文件是實體的部分類。我有辦法做到這一點,問題是:我是不是這樣做,或者我應該這樣做?使用GUID和實體框架

我的問題是,當edmx文件更新時,我不想還必須編輯一堆代碼文件,我只是想運行一個工具來完成必要的工作。

再次,我的頭是直的嗎?

回答

6

那麼,如果您查看實體框架默認生成的部分類,則不存在默認構造函數。

所以這樣做在一個單獨的部分課程將很好地工作:

public partial class Customer{ 
    public Customer(){ 
     _ID = Guid.NewGuid(); 
    } 
} 

所以有可能是沒有理由不這樣做你計劃。

你可能想看看T4模板來做到這一點。這就是EF 4.0(即.NET 4.0中的EF)允許您定製生成的代碼的方式。現在,在4.0版本中,這種體驗非常無縫,您可以輕鬆地將基於T4的東西放在一起,只需創建這些在.NET 3.5 SP1中可以正常工作的partials類。

希望這有助於

亞歷

+0

非常有用的建議。我可能不會在這個項目上使用T4模板,但是對於其他項目來說非常有用。 – 2009-07-24 14:48:23