通过 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 服务器。
AzureBlob --> 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
对于这样的事情,我也建议使用 Dapper。
这是概念验证。 目标:读取 Azure Blob 并将其加载到本地 SQL 服务器。
步骤: 我使用 C# 连接 Azure blob 并将其下载到内存流中,并将其解析为 Json 文件。 我打算使用 EntityFramework 将数据加载到本地 SQL 服务器。
AzureBlob --> 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
对于这样的事情,我也建议使用 Dapper。