2013-02-10 90 views
0

我想使用EF 5.0的數據庫優先方法,它不會爲我創建正確的模型。實體框架數據庫 - 首先不會創建正確的模型

這裏是我的數據結構:

論壇

Forums

用戶

Users

帖子

Posts

關係 Relationships

問題

的主要問題是在Forums和一個一對一關係Posts表。該模型不會將ParentForumIDReplyTo識別爲可空,因此會在表格(Forum-ForumPost-Post)之間建立一對多關係。

此外,試圖手動更改,以一比一的關係的時候,我得到這個錯誤:

Error 113: Multiplicity is not valid in Role 'Forum1' in relationship 'FK_Forums_Forums'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *. ...\Models\Entities\Model1.edmx

在Visual Studio中的模型(編輯前)

The model

我嘗試使用代碼優先的方法,但它產生了一個糟糕的數據庫結果,然後我意識到我可以配置數據庫創建的行爲,但我找不到解釋如何正確配置它的好資源。

我寧願使用數據庫優先的方法,因爲它可以讓我自定義我的數據庫,但它仍然會生成一個錯誤的模型,並帶有許多錯誤。

所以我的問題是:

  1. 什麼是這樣做的最佳方法?

  2. 從哪裏可以先了解代碼,數據庫先徹底?

  3. 爲什麼我的視覺工作室生產這樣的模型?

  4. 爲什麼當我嘗試更改模型以適合我的需求時,它會給我之前描述的錯誤?

  5. 我在哪裏可以瞭解遷移工具?我可以用來配置數據庫創建的功能?

+0

我不明白,應該不是父論壇對孩子論壇是1對多?並且父帖子也發給子帖子了?兒童論壇有1到1個父母論壇有什麼意義? – 2013-02-10 01:41:21

回答

0

問題1:這取決於。

如果您已經編寫了代碼,或者您更願意首先編寫對象,那麼轉到該路線。

如果另一方面,你更喜歡先做數據庫模式,那麼就不要那麼做。

重要的不是,所以選擇最適合你的東西。

0

問題2 - 5:您可以通過多種方式瞭解這一點。有些人喜歡購買數十本非常好的有關可用的C#編程的EF書籍。

其他人更喜歡參加一個班來引導他們整個實體框架技術。我爲一家這樣的公司工作,我們有很棒的課程。我不是在這裏把一家培訓公司推到另一家,所以我會提出一個與我的僱主分開的建議〜複數視力。他們非常好,你可以找到一個代碼優先的EF方法培訓計劃here的鏈接。這是一門付費課程。

我的方法包括圍繞嘗試不同的模型進行挖掘,以便了解EF Design Surface的工作原理。因此,我開始喜歡使用DataBase的第一個建模方法,和你一樣。只是掛在那裏,並繼續在工具中撞擊,嘗試不同的事情。

我可以在有限的基礎上爲您提供幫助。我無法告訴你爲什麼EF創建了它的模型,因爲我無法知道你做了什麼來實現這一目標,現在可以。如果您需要一點教練,請隨時通過StackOverflow與我聯繫。

祝你好運!

相關問題