鑑於以下類別,我希望能夠使用ID列表來返回DesignAttribute表中具有AttributeId爲1或3的設計。如何使用列表查詢查找表?
public class Design
{
public int DesignId { get; set; }
public string DesignName { get; set; }
public virtual List<DesignAttribute> DesignAttributes { get; set;}
}
public class Attribute
{
public int AttributeId { get; set; }
public string AttributeName { get; set; }
}
public class DesignAttribute
{
public int DesignAttributeId { get; set; }
public virtual Design Design { get; set; }
public virtual Attribute Attribute { get; set; }
}
中的設計可有1個或多個屬性,例如
設計表
DesignId DesignName
1 Design A
2 Design B
3 Design C
屬性表
AttributeId AttributeName
1 Light
2 Dark
3 Demo
DesignAttribute表
DesignAttributeId Design_DesignId Attribute_AttributeId
1 1 1 Design A is Light
2 1 3 Design A is also a Demo
3 2 2 Design B is Dark
4 3 1 Design C is Light
我有下面的代碼
//attributes list = "[1,3] I want any designs that have Light OR Demo attributes"
public List<Design> FilterDesigns(List<string> attributes)
{
//sudo code as i'm not sure how to structure this.
var designs = db.Designs.Where(i => i.DesignAttributes
WHERE DesignAttributes.AttributeId is in the list of attributes passed into the method)
}
所以我希望用含設計設計A和設計的C 2項列表結束,因爲他們都有一個ID對屬性ID 1和3在DesignAttribute查找表中。