C# 使用其他两个实体筛选实体中的数据
我有以下三个数据表:C# 使用其他两个实体筛选实体中的数据,c#,linq,entity-framework,asp.net-web-api,entity-framework-4,C#,Linq,Entity Framework,Asp.net Web Api,Entity Framework 4,我有以下三个数据表: public partial class category { public category() { this.subcategory = new HashSet<subcategory>(); } public int category_id { get; set; } public string description { get; set; } public virtual ICollec
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() {
----
}:
问题是c=>c.category\u id=category\u id&&c.subcategory\u id&&subcategory\u id&&c.manu\u id=manu\u d Intellisense无法通过category\u id它无法进入subcategory\u id和manu\u id
请让我知道如何正确编写此查询,以便我可以根据三个变量筛选数据 2件事:
==表示等效性是用来分配的。
所以c.category\u id=category\u id应该是c.category\u id==category\u id
c、 子类别\u id&&subcategory\u 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 {
----
});
}
首先,您使用的是=而不是==,因此您没有进行比较
其次,在c.subcategory\u id和subcategory\u 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
};
}