【发布时间】:2017-12-17 21:22:25
【问题描述】:
我找到了这个网站https://blogs.msdn.microsoft.com/dotnet/2016/11/09/net-core-data-access/,但如果我可以使用一个变量来打孔不同的连接?例如,我有 MySQL 和 SQLite。所以我写了var connection = new SqliteConnection() 和var connection = new MySqlConnection(),但我需要这个变量connection 作为函数的参数。我能做到吗?而object 也无济于事:(
【问题讨论】:
-
使用接口
IDbConnection还是基类DbConnection? (如果它存在于 .NET Core 中)所以不要写var,而是写IDbConnection connection = new SqliteConnection(); -
为什么不能使用 var 和 object 作为函数参数并比较
if(connection.GetType() == typeof(SqliteConnection))这样的对象类型并从那里分支? -
我是 C# 新手,当我尝试查找有关通用连接的信息时,我什么也没找到,这就是我在这里写的原因。谢谢大家的帮助:)
-
@Nju 只是想让你知道这并不像看起来那么简单。如果您不进行最简单的操作,那么创建一个与数据库无关的数据层是一件困难的事情。 EntityFramework 仍然难以支持所有 db 类型,并且当您从一种类型切换到另一种类型时,nHibranate 会出现问题。如果您想要不可知的数据层查看存储库模式,它并不完美,但它是最流行的。
-
@FilipCordas 谢谢,但是如果你可以的话,这个存储库的链接会很好:)