2012-08-13 33 views
1

忙於學習MVC 3並遇到了以下情況,我希望使用MVC 3標準以正確/最佳方式實現該方案。如何執行以下(SQL)作爲模型/模型

我有2個表hotticle & l在我的數據庫中,hArticle表基本上存儲着每個人的每篇評分的文章信息和評分表存儲。下面是我將用來獲取我需要的數據的SQL語句。 (請注意,這僅是閱讀的目的,我不需要創建,從CRUD更新&刪除)

SQL語句:

SELECT DISTINCT A.ArticleID, A.Title, A.Likes, A.Author, 
CASE WHEN SUM(R.Rating) IS NULL THEN 0 ELSE SUM(R.Rating) END AS 'Rating' 
FROM hArticle A 
LEFT OUTER JOIN lRating R ON R.ArticleID = A.ArticleID 
GROUP BY A.ArticleID, A.Title, A.Likes, A.Author 

這將產生以下結果:

1 Article 1  12 Peter Ndlovo 10 
    2 Article 2  2  Peter 2   0 
    3 Article 3  3  Peter 3   0 
    4 Article 4  4  Peter 4   0 

在MVC中重新創建以下SQL語句的正確/最佳方式是什麼?是否創建映射到SQL視圖的模型或創建E模型ach表和結合他們等?

回答

0

創建可以攜帶所有你需要該視圖的功能,也可以使用動態模型ExpandoObject

視圖模型方法

http://stephenwalther.com/archive/2009/04/13/asp-net-mvc-tip-50-ndash-create-view-models.aspx

和動態的對象模型模型方法(好文章!)

http://www.codeproject.com/Articles/62839/Adventures-with-C-4-0-dynamic-ExpandoObject-Elasti

,但如果你需要簡單即。一種類型的對象或只是一個對象的列表比生活簡單 只是給該對象作爲視圖的模型

0

對我而言,最好的方法是解耦所有的東西。在我的MVC項目中,我有一個或多或少精確反映數據庫的域模型,這不是MVC體系結構的一部分,而是同一解決方案中的「域模型」項目。 mvc的M就是一組「ViewModels」,它們反映了我的Views呈現數據的方式。對於上面的內容,我會爲每個表格創建一個模型,並將它們組合在一個視圖模型中,我將使用它來顯示結果。

相關問題