ef netcore写出三层架构DAL代码
时间: 2023-05-28 14:04:32 浏览: 89
由于我是AI语言模型,无法使用真实的编码环境。以下是一个DAL的示例代码,仅供参考:
```
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Threading.Tasks;
namespace MyProject.DAL
{
public class DataAccessLayer
{
private string connectionString;
public DataAccessLayer(string connectionString)
{
this.connectionString = connectionString;
}
public DataTable ExecuteQuery(string query, List<SqlParameter> parameters = null)
{
DataTable dataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(query, connection))
{
if (parameters != null && parameters.Count > 0)
{
command.Parameters.AddRange(parameters.ToArray());
}
connection.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
adapter.Fill(dataTable);
}
}
}
return dataTable;
}
public int ExecuteNonQuery(string query, List<SqlParameter> parameters = null)
{
int rowsAffected = 0;
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(query, connection))
{
if (parameters != null && parameters.Count > 0)
{
command.Parameters.AddRange(parameters.ToArray());
}
connection.Open();
rowsAffected = command.ExecuteNonQuery();
}
}
return rowsAffected;
}
}
}
```
该代码定义了一个名为DataAccessLayer的类,用于执行与数据库相关的操作。其中包括ExecuteQuery方法和ExecuteNonQuery方法。ExecuteQuery方法用于执行查询操作并返回一个DataTable对象,ExecuteNonQuery方法用于执行非查询操作并返回受影响的行数。两个方法都可以接收一个参数列表,该列表包含查询或操作所需的参数。该类的构造函数需要一个连接字符串作为参数,以便在创建SqlConnection对象时使用。