我是MVC / Linq派对的新手(来自Java)。
我知道我可以使用类似下面的内容来获得强类型访问,但是如果我想在linq查询中使用连接呢?
public void IQueryable<Product> GetItems(int CategoryID)
{
... linq查询...
} enter code here
答案 0 :(得分:1)
在您的示例中,如果您已使用设计器创建Linq to SQL数据上下文,并且数据库中的Product和Category表之间存在外键关系,则Category将是Product类中的属性,所以没有必要加入他们。
以下内容应该有所帮助(猜测属性名称; db是您的数据上下文):
public IQueryable<Product> GetItems(int categoryID)
{
return db.Products.Where(p => p.Category.CategoryID == categoryID).AsQueryable();
}
或者,如果您对lambda语法不满意,则以下是同义词:
public IQueryable<Product> GetItems(int categoryID)
{
var result = from p in db.Products
where p.Category.CategoryID == categoryId
select p;
return result.AsQueryable();
}
Product类具有Category属性,提供对类别中所有属性的强类型访问。您可以使用类似product.Category.Name的内容来获取类别名称。
此外,还有很多很好的Linq to SQL教程。请尝试以下方法:
http://it-box.blogturk.net/2007/10/19/linq-to-sql-tutorial-series-by-scott-guthrie-pdf-book-format/