2010-07-12 19 views
4

實體框架4.0期貨預覽(CTP3現在)只有一個代碼模型,用於在您的類型和數據庫之間進行映射。不涉及edmx文件,也不需要EDM設計人員。實體框架4中Code Only模型的優點?

我想知道Code Only和Model First的最大優點是什麼?在Code First中可以做什麼不能在其他模型中完成(Model First首先是&數據庫)?我想也許更多的控制,但我仍然不能修改CSDL,SSDL,MSL文件和我自己的代碼來獲得我需要的結果。 Code Only模型涉及到代碼中的所有事情,這些代碼可能容易出錯,比如產生錯誤的期望模型或缺少屬性定義。

回答

4

這確實是一個偏好問題。引用EF設計博客:

然而,許多開發人員將其代碼作爲他們的模型來查看其 代碼。

理想的情況下,這些開發商只是想 寫一些域類和無 接觸過一位設計師或一塊 XML的能夠使用這些類與 實體框架。基本上他們 想寫'只有代碼'。

http://blogs.msdn.com/b/efdesign/archive/2009/06/10/code-only.aspx

1

根據我的經驗,我會去的模式,首先是因爲它可以讓你在這樣複雜的方式,要在代碼首先做的是挑戰你的域模型。事實上,將會有幾個先進的建模場景,您將無法在第一個版本的代碼中實現。這完全是基於我對複雜建模的理解。但在EF團隊在Code-First上完成之前,我們不會知道。

此外,如果你從LINQ到SQL世界,你會很震驚地看到實體模型設計器是好的。它的工作非常出色,並且可以讓您在開發人員的努力下輕鬆構建複雜的模型。

0

這樣做的一個直接好處是,如果您當前正在編寫部分類以將方法或數據註釋添加到您的實體,現在可以將模型定義和方法都放在一個地方。如果隨着時間的推移模型變得複雜,當您需要添加新字段時,要確保驗證並添加邏輯,在需要觸及的任何地方都很難保持直線。