实体框架 - 查询多对多

时间:2018-05-29 18:48:33

标签: asp.net-mvc entity-framework-6 many-to-many

首先使用MVC EF代码。
我有3节课。一个人在另外两个人之间创造了许多关系。我相信我已正确设置,它在数据库中正确创建了表。我的问题是尝试查询它们。我试图返回图片的集合!Picture.Del,Picture.OK2Publish是true / false / all和Pictures_Tag.ImageTag_ID == tagid(每个用户输入)。代码

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="User", inversedBy="carts")
     */
    private $userId;

    /**
     * @ORM\ManyToOne(targetEntity="Product", inversedBy="carts")
     */
    protected $product;

    /**
     * @ORM\Column(type="integer")
     */
    private $quantity;

1 个答案:

答案 0 :(得分:1)

将您的查询更改为此

var px = db.Pictures.Include(b => b.Pictures_Tags)
.Where(c => !c.Del && c.Pictures_Tags.Count(d => d.ImageTag_ID == tagid) > 0)
.OrderBy(z => z.PictureName);

它将返回未删除的图片以及它们的标签是否提供了tagId。我认为您不需要转换数据并执行选择。