我正在尝试使用 MVC3 构建网上商店。我正在使用 EF,并且我有一个接口来处理我的实体上下文:
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(ProductID,CategoryID)] - [Category(ShortName)]
- 表产品
- 具有字段 ShortName 的表类别
- 表 CategoryProduct 与字段 ProductID,CategoryID 建立多对多链接。
(我们离问题越来越近了......)
我有一个方法,它从表“Category”中获取“ShortName”(“repository”是仅用于一个表的 dbcontext - “Category”)并且我需要在我的视图中返回 IEnumerable<> 的产品:
public ActionResult GetProductInCategory(string shortName)
{
IEnumerable<Product> = repository.Get()......
return View();
}
所以这就是问题所在:我需要使用 lambda 进行查询以从这 3 个表中获取产品,但我不明白如何做到这一点。
我不能使用 linq,因为我只能直接访问整个数据库中的一个表。
很抱歉解释不好,如果您对建筑有任何疑问以获得整体观点,我会尽力回答您。