【发布时间】:2017-01-03 04:06:28
【问题描述】:
我有一个包含一些 ID 的列表,我想选择 ID 在该列表中的记录。到目前为止我有
var ids = new List<long> {1, 2, 3}; // Actually the list is not hard coded
using(var context = new MyContext())
{
context.MyModel.Database.SqlQuery("SELECT * FROM dbo.MyModel WHERE Id IN @p0", ids).ToList();
}
但这不起作用,它给了我一个MySql.Data.MySqlClient.MySqlException
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '_binary 'System.Collections.Generic.List`1[System.Int64]' 附近使用的正确语法 ' 在第 1 行
请不要给我一个 LINQ 解决方案。提前致谢。
【问题讨论】:
-
我想应该是
context.MyModel.Database.SqlQuery我现在正在使用移动设备,我会检查并在可能的时候通知您。 -
@uteist 你是对的。我的错。谢谢。
-
我只能通过将 lambda 表达式
.Where(x => ids.Contains(x.Id))添加到DbSqlQuery来使其工作。 -
其实我必须使用联合选择和列名别名(AS子句),所以LINQ可能不适合我。
-
这是一种愚蠢的做法stackoverflow.com/a/337817/2707705
标签: c# mysql sql entity-framework-6