【问题标题】:How to connect to different type of database in .NET Core如何在 .NET Core 中连接到不同类型的数据库
【发布时间】: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 谢谢,但是如果你可以的话,这个存储库的链接会很好:)

标签: c# mysql .net-core


【解决方案1】:

SqliteConnectionMySqlConnection 都继承自 DbConnection,您可以将其用作参数类型。更抽象:这个类型也实现了IDbConnection

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 2017-09-01
    • 2017-05-10
    • 2016-10-18
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多