2012-03-11 50 views
2

我已經開始調查微軟的LightSwitch 2011作爲開發用於更新各種數據庫快「admin」的應用程序一個可能的解決方案 - 主要是那些含有查找表或配置數據的企業內部網站或應用程序。微軟的LightSwitch和Entity Framework代碼優先不一致

我有一個使用ASP.NET MVC開發一個網站。 EF Code First被用於構建數據層。其中一些關係是EF CF通過創建僅包含關係中涉及的兩個表的主鍵的兩個字段來處理的多對多關係。連接表的主鍵是兩個字段的組合。例如,一個文檔實體可以有多個類別,而一個類別可以由多個文檔組成。創建三個表格:文檔,類別和文檔類別。 DocumentCategories只有兩列:DocumentID和CategoryID。

將此數據庫作爲外部數據庫附加到Lightswitch,併爲Documents表創建主詳圖屏幕(並顯示相關類別)時,可將數據從相關表中刪除並添加到相關表中表)但未修改。

調查顯示,LightSwitch的要求在許多一對多關係的連接表有它自己的主鍵,是不是相關的表的鍵的串聯。換句話說,表格必須是以下格式:DocumentCategoryID,DocumentID,CategoryID。如果連接表的構造方式如此,則可以更新相關表中的條目。

我知道,我可以不更新記錄和簡單的刪除和重新添加他們的工作,解決這個問題。這不是什麼大問題,因爲1)Lightswitch使這一切變得簡單,並且2)相關數據通常沒有大的變化。儘管「什麼是正確的」,但這違背了我的感受。因此,爲所有微軟工具仇敵提供飼料的風險,1)這僅僅是微軟犯了一個錯誤,不一致或者在這裏工作時是否存在其他力量的情況,以及2)是否存在這種方式來「修復」這個,而不必重寫我的ASP.NET MVC,EF CF應用程序和更改數據庫結構?

回答

2

1)LightSwitch的工作。是的,有'仇敵',但當釘槍出來時有仇敵(http://jhurst.blogspot.com/2011/01/nail-gun-or-hand-nail-your-roof-which.html)支付我們服務的最終用戶將要求我們使用可以降低成本90%的工具+ 2)使用WCF RIA Services允許您在數據層和LightSwitch之間的任何區域之間放置一個圖層(請參閱:http://lightswitchhelpwebsite.com/Blog/tabid/61/tagid/21/WCF-RIA-Service.aspx)只有在適用於您時才使用「數據源嚮導」。如果它給你帶來任何問題,那麼一個WCF RIA服務只需要5分鐘的時間就可以解決任何問題,因爲你可以使用程序代碼來處理你需要的任何變換。

+0

我認爲這個建議使用WCF RIA服務可能是處理這種方式,但我不應該這樣做。我在一致性評論背後的觀點是,EF CF應該生成一個連接表,該連接表具有自己的主鍵元素(而不是現在生成的組合鍵),或者Lightswitch應該使用組合鍵「開箱即用」。我知道這些是兩種不同的產品,具有不同的開發時間表和不同的開發團隊,但是這看起來像是一件基本的事情,我希望它能更加無縫地工作。 – RWGodfrey 2012-03-12 13:56:01

+0

說「我不應該那樣做」有點像我說的,當我的寶馬在第二檔可以達到同樣的速度時,我不應該把我的經濟型車安置在三檔。我希望不會迷失的是,你可以讓LightSwitch做你想做的事......只是不總是你想要的方式:) – 2012-03-13 04:23:32

+0

我並不意見它可以做我想做的事 - 但我想要更多:)如果微軟在產品上應用一些一致性,那麼Lightswitch作爲RAD工具的承諾就可以實現得更多。在這種特殊情況下,我懷疑爲什麼連接表必須在EF CF和Lightswitch之間有不同的體系結構,這有一個基本的技術原因。有差別的事實導致我必須做更多的工作(即時間),而不是我必須做的。 – RWGodfrey 2012-03-13 11:51:22

相關問題