使用 Dapper 或 Dapper.SimpleCRUD , 如何从表中删除列表。像这样的东西:
public static void DeleteList<T>(List<T> listToDelete)
{
using (var connection = OpenConnection())
{
connection.Delete<T>(listToDelete);
}
}
但是当我尝试这样做时,我得到...
The member of type DataModel.MyTable cannot be used as a parameter value
WHERE 子句是唯一的选择吗?
最佳答案
Dapper 不了解您的实体;它不像 Entity Framework 。您需要自己执行 SQL 命令或存储过程。
public static void DeleteList(List<int> idToDelete)
{
using (IDbConnection conn = new SqlConnection(connString))
{
conn.Open();
foreach (int id in idToDelete)
{
conn.Execute(@"DELETE FROM [User] WHERE Id = @Id", new {Id = id});
}
}
}
或Execute a Command multiple times
public static void DeleteList(List<int> idToDelete)
{
using (IDbConnection conn = new SqlConnection(connString))
{
conn.Open();
conn.Execute(@"DELETE FROM [User] WHERE Id = @Id",
idToDelete.Select(x => new { Id = x }).ToArray());
}
}
关于c# - 使用 Dapper 删除 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45971254/