postgresql C# ANSI数据库大容量插入

at0kjp5o  于 2023-03-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(163)

我正在寻找一种方法来做多行插入与C#可以是通用的足够,使相同的程序可以适用于不仅仅是SQL Server
现在,我们有一个应用程序,可以使用SQLitePostgreSQLSQL作为后端来存储数据,还可以将Oracle添加到混合中。因此,如果有一个过程可以在一个往返过程中插入多行,那就太好了。并且无论使用哪个数据客户端,都要使同一过程工作。(因此,我不使用SQL Server存储过程)。

mwkjh3gx

mwkjh3gx1#

简短回答:不可能。
说明:
.NET中无法做到这一点,因为每个ORM(例如Entity Framework)使用自己的设计和体系结构连接到不同的DBRM。MSSQL有一个E.F.,SQLite有一个,MySQL有一个,MySQL有微软或第三方的版本,如Pomelo,但问题是每个EF都使用不同的架构。
此外,Entity Framework不是为巨大的批量,对此建议使用ADO.NET。在这种情况下,您可以使用plain SQL。考虑到ADO.NET也可以在某些框架版本中为某些DBRM而变化。
作为建议,您可以使用通用类并执行特定的Map,因此如果选择在某些不适用于T-SQL的DBRM中发生更改,您可以自己进行查询。
根据我的观察,我会选择ADO.NET场景,这是一个更多的工作,但相当先进,你不会浪费时间使用Reflection或一些可能带来大量返工和bug的架构。
你可以尝试使用ADO.NET,使用动态连接字符串,并尝试使用相同的存储库进行工作。
你可以在这里阅读我的答案,以获得一个想法:https://stackoverflow.com/a/69574353/888472
更新:
作为一般的架构,我会使用不同的层(DAL),或者你可以使用REST API(DAS -数据服务),或者你可以为每个DBRM使用一个DAL,这取决于你和你的需要。考虑到Web不是最好的批量工作,因为超时。

相关问题