【发布时间】:2021-10-18 04:31:50
【问题描述】:
我正在尝试了解如何使用 .NET Core 5 在 C# 中创建 RestApi 应用程序以支持 SQL Server 和 MySQL,未来可能还会支持其他数据库。
我只使用 sql 的 Select 命令(仅读取操作) 有复杂的查询,需要连接表和获取数据。 我在查询中遇到了支持这两个数据库的挑战。
SQL Server 使用 SqlParameter 而 MySQL 使用 MySqlParameter 但是 实际的选择查询适用于这两种数据库类型。
using var cmd = Db.Connection.CreateCommand();
cmd.CommandText = @"select * from Table1";
cmd.Parameters.Add(new SqlParameter
{
ParameterName = "@ID",
DbType = DbType.Int32,
Value = ID,
});
请建议有更好的方法吗? 我查看了 EF Core,但找不到确切的解决方案。
【问题讨论】:
-
使用 OdbcCommand?
-
SqlParameter 和 MySqlParameter 派生自同一个东西,与连接、命令等相同。使用 Dapper 也有助于减少代码量
-
@CaiusJard 但是 DbParameter 是一个抽象类。不能使用它代替 SqlParameter 或 MySqlparameter
-
你了解多态的工作原理吗?
标签: c# mysql sql-server api rest