我正在嘗試使用MVC3構建Internet商店。我使用的EF和我有一個接口與我的實體上下文工作:MVC中的Lambda表達式3
public interface IBaseRepository<T> where T : class, IBase, new()
{
IQueryable<T> Get();
}
和一個抽象類,這個接口的工作:
public abstract class BaseRepository<T> :
IBaseRepository<T> where T : class, IBase, new()
{
protected abstract ObjectSet<T> EntitySet { get; }
public virtual IQueryable<T> Get()
{
return from obj in EntitySet select obj;
}
}
這樣我就可以使用此解決方案具有不同的工作我的數據庫中的表(SQL)。我還無法發佈圖片。所以我會盡力來形容我的數據庫:
[產品] - [CategoryProduct(產品ID,類別ID)] - [類別(SHORTNAME)
- 表產品
- 表類別與現場SHORTNAME
- 表類別產品與字段ProductID,CategoryID進行多對多鏈接。
(我們正在越來越接近問題....)
我有一個方法,它需要從表「類別」,「短名稱」(「庫」是的DbContext只有一個表 - 「類別」),我需要在我看來回報產品的IEnumerable的<>:
public ActionResult GetProductInCategory(string shortName)
{
IEnumerable<Product> = repository.Get()......
return View();
}
因此,這裏的問題:我需要做一個查詢使用lambda採取從這3個表格的產品,但我無法理解,如何做到這一點。
我不能使用linq,因爲我只能直接訪問整個數據庫中的一個表。
對不起,如果你有任何關於架構的問題來獲得整個視圖,我會盡力回答你。
所以你想要使用lambda返回數據(你需要LINQ),但是因爲沒有權限而無法獲取數據? :S – mattytommo 2012-04-12 09:15:23
我想,這並不是說他沒有權限,問題是他的'IBaseRepository'只能輸入'T'。 –
gideon
2012-04-12 09:36:43