通过 C# 读取 Azure Blob 并插入到本地 SQL 服务器

Read a Azure Blob via c# and insert into on-premise SQL Server

这是概念验证。 目标:读取 Azure Blob 并将其加载到本地 SQL 服务器。

步骤: 我使用 C# 连接 Azure blob 并将其下载到内存流中,并将其解析为 Json 文件。 我打算使用 EntityFramework 将数据加载到本地 SQL 服务器。

A​​zureBlob --> MemoryStream --> Json 文件 --> Class 对象列表 --> 使用 EntityFramework 通过 MVC 加载到 SQL

任何人都可以让我知道这是否是正确的方法或有更好的建议吗?

谢谢

您可以跳过

Json file --> List of Class Object --> Use EntityFramework

步骤并在存储过程中解析 json,然后将其插入 table。

CREATE TABLE [dbo].[JsonTest] (
    [Id]          INT           NOT NULL,
    [firstName]   NVARCHAR (50) NULL,
    [lastName]    NVARCHAR (50) NULL,
    [age]         INT           NULL,
    [dateOfBirth] DATETIME2 (7) NULL
);

DECLARE @json NVARCHAR(MAX);
SET @json = N'[
     {"id": 2, "info": {"name": "John", "surname": "Smith"}, "age": 25},
     {"id": 5, "info": {"name": "Jane", "surname": "Smith"}, "dob": "2005-11-04T12:00:00"}
]';

INSERT INTO JsonTest 
SELECT *
FROM OPENJSON(@json)
   WITH (
     id INT 'strict $.id',
     firstName NVARCHAR(50) '$.info.name',
     lastName NVARCHAR(50) '$.info.surname',
     age INT,
     dateOfBirth DATETIME2 '$.dob'
  );

SELECT * FROM JsonTest

https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15#convert-json-collections-to-a-rowset

对于这样的事情,我也建议使用 Dapper。