如何遍历对象数组并匹配数据库以及 return 与 linq 匹配
how to loop through a array of objects and match to a database and return matching with linq
我需要将 id 传递给 webapi 控制器并 return 结果。我目前将 id 作为对象数组传递。我需要将 ID 与数据集匹配,然后 return 结果。我找到了几个我正在尝试使用的帖子。
return db.markets.Where(x => db.markets.Contains(x.x_market_code));
这不起作用,因为它不是字符串或列表?我试图将数组转换为字符串或列表,但我没有得到任何结果。
这是代码
public class marketIds
{
public int x_market_code { get; set; }
}
[HttpPost]
[Route("getAssignedMarkets")]
public IQueryable GetAssignedMarkets(marketIds[] arry)
{
return db.markets.Where(x => arry.Contains(x.x_market_code));
}
如果需要,我可以更改在 javascript 中传递 ID 的方式。
错误信息
我假设市场代码是 int 所以:
[HttpPost]
[Route("getAssignedMarkets")]
public IQueryable GetAssignedMarkets(int[] arry)
{
return db.markets.Where(x => arry.Contains(x.x_market_code));
}
但你可以使用字符串或其他任何东西,
但是您仍然可以使用 class:
public class marketIds
{
public int x_market_code { get; set; }
}
[HttpPost]
[Route("getAssignedMarkets")]
public IQueryable GetAssignedMarkets(marketIds[] arry)
{
return db.markets.Where(x => arry.where(t=>t.x_market_code == x.x_market_code).Any());
}
根据您的错误信息,也许这会对您有所帮助:
[HttpPost]
[Route("getAssignedMarkets")]
public IQueryable GetAssignedMarkets(int[] arry)
{
return db.markets.Where(x => arry.Contains(x.x_market_code.Value)).ToList();
}
您可以将读取所有 market_code
从数组转换为字符串集合,然后在您的 LINQ 查询中使用 Contains()
方法。
var codeList = arry.Select(s => s.x_market_code).ToList();
var result=db.markets.Where(x => codeList.Contains(x.x_market_code));
return result;
假设您将其与市场 table 中的 market_code
列进行比较,并且它的类型为 Int
.
我需要将 id 传递给 webapi 控制器并 return 结果。我目前将 id 作为对象数组传递。我需要将 ID 与数据集匹配,然后 return 结果。我找到了几个我正在尝试使用的帖子。
return db.markets.Where(x => db.markets.Contains(x.x_market_code));
这不起作用,因为它不是字符串或列表?我试图将数组转换为字符串或列表,但我没有得到任何结果。
这是代码
public class marketIds
{
public int x_market_code { get; set; }
}
[HttpPost]
[Route("getAssignedMarkets")]
public IQueryable GetAssignedMarkets(marketIds[] arry)
{
return db.markets.Where(x => arry.Contains(x.x_market_code));
}
如果需要,我可以更改在 javascript 中传递 ID 的方式。
错误信息
我假设市场代码是 int 所以:
[HttpPost]
[Route("getAssignedMarkets")]
public IQueryable GetAssignedMarkets(int[] arry)
{
return db.markets.Where(x => arry.Contains(x.x_market_code));
}
但你可以使用字符串或其他任何东西, 但是您仍然可以使用 class:
public class marketIds
{
public int x_market_code { get; set; }
}
[HttpPost]
[Route("getAssignedMarkets")]
public IQueryable GetAssignedMarkets(marketIds[] arry)
{
return db.markets.Where(x => arry.where(t=>t.x_market_code == x.x_market_code).Any());
}
根据您的错误信息,也许这会对您有所帮助:
[HttpPost]
[Route("getAssignedMarkets")]
public IQueryable GetAssignedMarkets(int[] arry)
{
return db.markets.Where(x => arry.Contains(x.x_market_code.Value)).ToList();
}
您可以将读取所有 market_code
从数组转换为字符串集合,然后在您的 LINQ 查询中使用 Contains()
方法。
var codeList = arry.Select(s => s.x_market_code).ToList();
var result=db.markets.Where(x => codeList.Contains(x.x_market_code));
return result;
假设您将其与市场 table 中的 market_code
列进行比较,并且它的类型为 Int
.