我有以下三个数据表:
public partial class category
{
public category()
{
this.subcategory = new HashSet<subcategory>();
}
public int category_id { get; set; }
public string description { get; set; }
public virtual ICollection<subcategory> subcategory { get; set; }
}
第二个实体
public partial class subcategory
{
public subcategory()
{
this.tracked_item = new HashSet<item>();
}
public int subcategory_id { get; set; }
public int category_id { get; set; }
public string description { get; set; }
public virtual ICollection<item> item { get; set; }
public virtual category category { get; set; }
}
第三实体
public partial class item
{
public int item_id { get; set; }
public string serial_number { get; set; }
public string inventory_number { get; set; }
public int subcategory_id { get; set; }
public Nullable<int> manu_id { get; set; }}
public virtual subcategory subcategory { get; set; }
public virtual manu manu { get; set; }
}
我正在尝试在我的web api中编写一个方法,我希望使用这样的三个参数来过滤数据 使用项目作为上下文
public IEnumerable<filteredItems> GetfilterItem(int category_id, int subcategory_id, int manu_id)
{
return DbSet.Where(c=>c.category_id=category_id && c.subcategory_id && subcategory_id && c.manu_id =manu_d).Select(d=> new filteredItems() {
----
}:
我遇到问题.Where(c=>c.category_id=category_id && c.subcategory_id && subcategory_id && c.manu_id =manu_d)
Intellisense不会通过category_id
它无法转到subcategory_id
和manu_id
请让我知道如何正确编写此查询,以便我可以根据三个变量过滤数据。
答案 0 :(得分:0)
2件事:
==
表示等效。 =
用于分配。
c.category_id=category_id
应为c.category_id==category_id
c.subcategory_id && subcategory_id
看起来像是一个错字。
==
代替&&
所以你的代码是:
public IEnumerable<filteredItems> GetfilterItem(int category_id,
int subcategory_id,
int manu_id)
{
return DbSet.Where(c=>c.category_id == category_id
&& c.subcategory_id == subcategory_id
&& c.manu_id == manu_d)
.Select(d=> new filteredItems {
----
});
}
答案 1 :(得分:0)
首先,您使用=
代替==
,因此您不会进行比较。
其次,&&
和c.subcategory_id
之间的subcategory_id
代替==
。
试试这个:
public IEnumerable<filteredItems> GetfilterItem(int category_id, int subcategory_id, int manu_id)
{
return DbSet.Where(c => c.category_id == category_id
&& c.subcategory_id == subcategory_id
&& c.manu_id == manu_d)
.Select(d => new filteredItems
{
// populate object
};
}