2014-01-09 94 views
1

實體框架代碼第一個最佳實踐問題?實體框架代碼與域的第一個模型分離

嗨,我在一個NTier應用程序上使用EF codeFirst 6。

我發現我用來映射到EF的poco對象真的是EntityFramework特定的。讓我舉個例子

如果我想在對象中添加一個與EF無關的屬性,EF不喜歡它。 我讀了你可以把「NotMapped」屬性,但它開始使這個對象難以維護。

也可能有開發人員不熟悉EF並且不理解該問題。

我的問題是保持EF實體模型分離並且有一個dto轉換成域模型的好習慣,其中 開發人員可以做到他喜歡的東西而不干擾EF模型,這顯然是1到1與數據庫中的表格

任何建議?

回答

1

您的問題可以通過使用Fluent API方法而不是Attribute-basedAnnotations)方法來解決。見Entity Framework Fluent API

您可以在DBContext中配置實體映射而不是在實體類中。

從上面的鏈接文章:

指定不映射一個CLR屬性的列在數據庫

下面的示例演示如何指定在CLR 類型的屬性是不映射到數據庫中的列。

modelBuilder.Entity<Department>().Ignore(t => t.Budget); 

,這將意味着 「忽略Department實體Bugdet財產。」

+0

雖然我使用的是流利的api(不是所有我都能熟悉的)。鑑於你的建議是有效的,所有的好處都不會更好地分離出一個「PersistenceModel」的關注點, 「無論你想要什麼」都不會干涉。我想讓其他從未見過感動的同事變得更輕鬆。 – user9969

+0

@ user231465我認爲'''可能是不必要的重複,這取決於你正在工作的項目類型。我將我的EF實體用作域模型,並將它們映射爲使用Fluent API「不干涉」。你的同事也應該學習他們正在從事的技術,順便說一句 –

+0

感謝您的時間,我接受您的建議我的更多是要知道是否有最佳做法,有一個「Dto」參與。再次感謝 – user9969

相關問題