从m:n关系中获取模型

时间:2014-06-23 12:21:03

标签: sql asp.net-mvc ado.net

我在SQL查询中遇到了建模逻辑的问题。 以下是我为此项目创建的表格。

首先是我的产品表

public partial class Products
{
    public Products()
    {
        this.Orders_Products = new HashSet<Orders_Products>();
        this.ShoppingCarts_Products = new HashSet<ShoppingCarts_Products>();
    }

    public int ProductId { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
    public int PPB { get; set; }
    public int CategoryId { get; set; }

    public virtual Categories Categories { get; set; }
    public virtual ICollection<Orders_Products> Orders_Products { get; set; }
    public virtual ICollection<ShoppingCarts_Products> ShoppingCarts_Products { get; set; }
}

然后是ShoppingCart表

public partial class ShoppingCarts
{
    public ShoppingCarts()
    {
        this.ShoppingCarts_Products = new HashSet<ShoppingCarts_Products>();
    }

    public int ShoppingCartId { get; set; }
    public string UserId { get; set; }
    public System.DateTime CreationDate { get; set; }

    public virtual AspNetUsers AspNetUsers { get; set; }
    public virtual ICollection<ShoppingCarts_Products> ShoppingCarts_Products { get; set; }
}

至少是

之间的连接表
public partial class ShoppingCarts_Products
{
    public int ShoppingCartId { get; set; }
    public int ProductId { get; set; }
    public int Count { get; set; }

    public virtual Products Products { get; set; }
    public virtual ShoppingCarts ShoppingCarts { get; set; }
}

现在我需要获取我自己的ShoppingCart中所有产品的列表。 我应该创建什么样的模型?

我知道我需要编写一个sql语句,其中包含两个维护项并将它们与连接表合并。 但我不能在互联网上找到任何标题。 有人知道样品或者可以给我一个提示,如何解决这个问题?

在此步骤之后,我需要在布局网站上显示该视图。

好的,我将尝试使用LINQ to SQL格式编写查询。现在我尝试在我的布局边上将此视图显示为部分视图。

@Html.Partial("_ShoppingCartPartial", Html.Action("MyShoppingCart","ShoppingCarts"))   

 // GET: MyShoppingCart
    public List<ShoppingCarts_Products> MyShoppingCart()
    {

        List<ShoppingCarts_Products> myproducts = db.ShoppingCarts_Products.Where(i => i.ShoppingCartId == 1).ToList();            

        return myproducts;
    }

由于

1 个答案:

答案 0 :(得分:0)

你可以尝试:

select * from ShoppingCarts_Products
where ShoppingCarts_Products.ShoppingCartId = <variable>
left join ShoppingCarts on ShoppingCarts.ShoppingCartId = ShoppingCarts_Products.ShoppingCartId 
left join Products on ShoppingCarts.ProductId  = Products.ProductId 

此外,展开字段选择条件以仅选择所需的字段。