![]() |
1
1
使用对象关系映射器。这将提供远离不同数据库引擎的高级别抽象,并且不会对您可以运行的查询类型施加(许多)限制。许多ORM还包括LINQ支持。关于提供建议和比较(例如 What is your favorite ORM for .NET? 似乎是最新的,并与其他几个链接)。 |
![]() |
2
2
最好的办法是为所有数据库访问使用一个接口。然后,对于您希望支持的每个数据库类型,执行该数据库的接口实现。这就是我过去为项目所做的。 许多数据库系统和存储工具的问题在于它们旨在解决不同的问题。您甚至可能不想将数据存储在SQL数据库中,而是将其作为文件存储在Web应用程序的app_data文件夹中。通过接口方法,您可以很容易地做到这一点。 一般来说,没有一个解决方案能够很好地适应所有数据库和存储解决方案,甚至其中的一些解决方案也很好。如果你找到一个声称是的,我还是不相信。当你对其中一个数据库有问题时,对你来说挖掘你的对象要比挖掘他们的对象容易得多。 |
![]() |
3
0
我建议使用存储库模式。您可以创建一个类来封装您需要数据库执行的所有操作,然后为您想要支持的每个数据库类型创建不同的实现。在许多情况下,对于相对数据存储,可以使用ADO.NET抽象(IDBConnection、IDataReader、IDataAdapter等),创建单个通用存储库,并且只为不提供ADO.NET驱动程序的数据库类型编写特定的实现。
我真的不知道你在存储什么,所以你必须根据你的实际需要调整它。我还猜想这需要一些重的重构,因为您的代码中可能到处都是SQL语句。将它们取出并封装可能是不可行的。但依我看,这是实现你想做的最好的方法。 |
|
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
![]() |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
![]() |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
![]() |
Peloucvo · 用数据库中的数据填充JTable 2 年前 |
![]() |
Montaser Majid · 用于从多行中提取单行的SQL查询 2 年前 |
![]() |
Max J. · 用整数作为键将dict写入csv 2 年前 |