Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无实体框架的MVC_Mysql_Sql_Asp.net_Entity Framework - Fatal编程技术网

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

来自以下源教程:

如何在没有实体框架的情况下,仅使用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 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();
    }