Mysql 无实体框架的MVC
来自以下源教程:Mysql 无实体框架的MVC,mysql,sql,asp.net,entity-framework,Mysql,Sql,Asp.net,Entity Framework,来自以下源教程: 如何在没有实体框架的情况下,仅使用SQL查询来完成上述代码示例 例如在上面的源代码中,而不是 var v = dc.Events.Where(a => a.EventID == eventID).FirstOrDefault(); if (v != null) { dc.Events.Remove(v); dc.SaveChanges(); status = true; } 我想做什么 DELETE FROM Even WHERE
var v = dc.Events.Where(a => a.EventID == eventID).FirstOrDefault();
if (v != null)
{
dc.Events.Remove(v);
dc.SaveChanges();
status = true;
}
我想做什么
DELETE FROM Even WHERE EventID = {0}
LINQ中的FirstOrDefault()
相当于MySQL中的LIMIT 1
,因此可以使用IF
或CASE将LINQ函数转换为SQL命令(假设命令在存储过程中运行):
注意:如果EventID
是主键列,您可以删除LIMIT 1
,因为查询结果只返回单个值
然后,使用callprocedure\u name(eventID)
或在MySqlCommand
中包含procedure\u name
来执行它。有两种方法:
在实体框架中使用原始查询:
通过SqlConnection打开连接字符串并执行:
方法1的sudo代码:
string sqlDeleteStatement = "DELETE FROM Even WHERE EventID = @id";
List<SqlParameter> parameterList = new List<SqlParameter>();
parameterList.Add(new SqlParameter("@id", 1)); delete id = 1
_context.Database.SqlQuery(sqlDeleteStatement, parameterList);
使用ADO.NET类,如SqlConnection等。如果是MySQL,则需要特定于MySQL的库(如MySQLConnection等),您可以从MySQL下载它们。如果你不知道如何使用它们,找一个教程,网上有很多免费的,你可以用谷歌搜索,几秒钟内就能找到一些。即使它们主要涉及SQL Server库,MySQL的基本思想也是一样的,MySQL文档本身也有具体的示例。你研究过你的需求吗??
string sqlDeleteStatement = "DELETE FROM Even WHERE EventID = @id";
List<SqlParameter> parameterList = new List<SqlParameter>();
parameterList.Add(new SqlParameter("@id", 1)); delete id = 1
_context.Database.SqlQuery(sqlDeleteStatement, parameterList);
using(SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = "Server=[server_name];Database=[database_name];Trusted_Connection=true";
string sqlDeleteStatement = "DELETE FROM Even WHERE EventID = @id";
SqlCommand command = new SqlCommand(sqlDeleteStatement , conn);
command.Parameters.Add(new SqlParameter("@id", 1)); //delete id = 1
command.ExecuteNonQuery();
}