我正在创建一个网络表单应用,允许用户查看产品列表,然后查看每个产品的个别详细信息。到目前为止,ProductDetails.aspx显示的是产品图片,描述和价格。我在product表中创建了一个单独的表来进行注释(注释表)。我想让用户能够在其详细信息页面中登录和评论产品。我还希望所有这些评论都能在任何时候显示ProductDetails时显示出来。这是我的查询,以显示产品详细信息,以便了解到目前为止它是如何编写的。
public IQueryable<Product> GetProduct([QueryString("productID")] int? productId)
{
var _db = new Critic.Models.ProductContext();
IQueryable<Product> query = _db.Products;
if (productId.HasValue && productId > 0)
{
query = query.Where(p => p.ProductID == productId);
}
else
{
query = null;
}
return query;
}
我想在注释中使用IQueryable,创建一个GetComments方法,在那里我可以通过相应的键连接两个表。我不知道该怎么做。如果有任何可以展示如何让我继续前进的例子,我将不胜感激。
public IQueryable<Comments> GetComments([QueryString("commentID")] int? commentId)
{
}
答案 0 :(得分:0)
您可以通过向数据库发出一个请求来实现此目的,而不是单独获取注释。您需要处理的唯一事情是因为您需要加入您的产品及其评论,您可能最终会为其每个评论重复一个产品,然后在.aspx页面上,您只需要显示所选产品一次并循环您网页上的其他评论。
public IQueryable<Product> GetProductDetails([QueryString("productID")] int? productId) { if (productId.HasValue && productId > 0) { using (var context = new Critic.Models.ProductContext()){ var product= from p in context.Products join pc in context.ProductComments p.ProductId equals pc.ProductId where p.ProductId == productId select new Product { ProductId = p.ProductId, CommentId = c.CommentId, ProductName = p.ProductName, CommentDesc = c.CommentDesc }; return product; } } else return null; }
希望它能为您提供线索。