带有IN子句的EF Core FromSql

时间:2020-02-15 12:48:03

标签: c# entity-framework entity-framework-core .net-core-3.0 ef-core-2.2

如何将int的动态列表传递给FromSql方法? 我尝试了以下代码,但没有用。

将nvarchar值'1,2,3'转换为数据类型int时转换失败。

y~0.5

2 个答案:

答案 0 :(得分:0)

这对我有用:

var result = dataContext.Customers.FromSql(string.Format("SELECT * FROM Customer WHERE Id IN ({0})", string.Join(",", listOfInt)));

它确实抱怨注入漏洞,但至少很容易清理int列表。

答案 1 :(得分:0)

您可以尝试这种方式

var Ids = string.Join(',', listOfInt.Select(n => n.ToString()).ToArray());

var result = dataContext.Customers.FromSql($"SELECT * FROM Customer WHERE Id IN ({Ids})")