我正在使用實體框架在MVC2中編寫應用程序從ViewModel訪問數據庫是否違反了MVC原則?
正如我所知,ViewModel只能包含沒有任何數據庫邏輯的數據。假設我有Product
這個類,它是當ProductToStatus
是多對多表時有EntityCollection<ProductToStatus>
的ADO.NET實體。我有ProductModel
(在它的.ctor中需要Product
),它傳遞給View
。
public class ProductModel
{
....
public Product Item {get; private set;}
...
public ProductModel(Product item)
{
...
this.Item = item;
...
}
}
在View
我需要使產品的所有狀態,所以要做到這一點,我需要通過item.ProductToStatus.Select(s=>s.ProductStatus).ToList();
在ProductModel
查詢數據庫,但這發送請求到數據庫,因此做它違反了MVC原則?
這是行嗎?或者我需要做點什麼?