Я хочу прочитать данные файла json с определенным массивом объектов json и вставить массовые данные в него ASP.NET ядро.
Привет,
Я хочу прочитать данные файла json с определенным массивом объектов json и вставить массовые данные в базу данных в Asp.net ядро.
У меня есть две таблицы в базе данных, как имена M203StructureKind, FlhDivision
CREATE TABLE [dbo].[M203StructureKind]( [Id] [int] IDENTITY(1,1) NOT NULL, [Code] [nvarchar](1) NOT NULL, [Description] [nvarchar](30) NOT NULL, [AgencyId] [int] NOT NULL, [IsActive] [bit] NOT NULL, [IsDeleted] [bit] NOT NULL, [AddedBy] [int] NOT NULL, [AddedOn] [datetime] NOT NULL, [ModifiedBy] [int] NOT NULL, [ModifiedOn] [datetime] NOT NULL ) CREATE TABLE [dbo].[FlhDivision]( [Id] [int] IDENTITY(1,1) NOT NULL, [Code] [nvarchar](1) NOT NULL, [Description] [nvarchar](15) NOT NULL, [AgencyId] [int] NOT NULL, [IsActive] [bit] NOT NULL, [IsDeleted] [bit] NOT NULL, [AddedBy] [int] NOT NULL, [AddedOn] [datetime] NOT NULL, [ModifiedBy] [int] NOT NULL, [ModifiedOn] [datetime] NOT NULL )
Кроме того, я сгенерировал сущности из базы данных с помощью asp.net ядро в папке models
например, M203StructureKind.cs
public partial class M203structureKind { public int Id { get; set; } public string Code { get; set; } public string Description { get; set; } public int AgencyId { get; set; } public bool? IsActive { get; set; } public bool IsDeleted { get; set; } public int AddedBy { get; set; } public DateTime AddedOn { get; set; } public int ModifiedBy { get; set; } public DateTime ModifiedOn { get; set; } }
и FlhDivision.в CS
public partial class FlhDivision { public int Id { get; set; } public string Code { get; set; } public string Description { get; set; } public int AgencyId { get; set; } public bool? IsActive { get; set; } public bool IsDeleted { get; set; } public int AddedBy { get; set; } public DateTime AddedOn { get; set; } public int ModifiedBy { get; set; } public DateTime ModifiedOn { get; set; } }
Теперь у меня есть файл MasterData.json, который содержит эти две таблицы данных с объектом json.
Файл MasterData.json содержит следующие файлы:
{ "M203StructureKind": [ { "Code": "1", "Description": "BRIDGE" }, { "Code": "2", "Description": "CULVERT" }, { "Code": "3", "Description": "TUNNEL" }, { "Code": "4", "Description": "TRAIL BRIDGE" }, { "Code": "5", "Description": "OTHER" } ], "FlhDivision": [ { "Code": 1, "Description": "CFL" }, { "Code": 2, "Description": "EFL" }, { "Code": 3, "Description": "WFL" } ] }
Так, теперь я хочу, чтобы массовая вставка данных в таблицу с помощью POST-API в Asp.net ядро. Но использование цикла foreach-это слишком длительный процесс, который также отнимает много времени, потому что у меня есть так много таблиц для вставки массовых данных в базу данных. Так скажи мне решение
Что я уже пробовал:
[HttpPut("copyMasterData/{id}")] public async Task<IActionResult> CopyMasterData(int id, bool isCopiedData) { try { string contentRootPath = _appSettings.MasterJsonPath; var folderDetails = Path.Combine(Directory.GetCurrentDirectory(), $"wwwroot\\{"MasterData\\masterdata.json"}"); var JSON = System.IO.File.ReadAllText(folderDetails); dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(JSON); var response = 0; foreach (JObject structKind in jsonObj["M203StructureKind"]) { string code = (string)structKind["Code"]; string description = (string)structKind["Description"]; int agencyId = id; bool IsActive = true; bool IsDeleted= false; int AddedBy = User.GetUserId(); int ModifiedBy = User.GetUserId(); DateTime ModifiedOn = DateTime.Now; DateTime AddedOn = DateTime.Now; response = await _m203structkindService.AddAsync(structKind.ToSingle<M203structureKind>()); } foreach (JObject flh in jsonObj["FlhDivision"]) { string code = (string)flh["Code"]; string description = (string)flh["Description"]; int agencyId = id; bool IsActive = true; bool IsDeleted = false; int AddedBy = User.GetUserId(); int ModifiedBy = User.GetUserId(); DateTime ModifiedOn = DateTime.Now; DateTime AddedOn = DateTime.Now; response = await _flhdivisionService.AddAsync(flh.ToSingle<FlhDivision>()); } return response > 0 ? Ok(new { message = "Master data added successfully." }) : StatusCode(500, "An error occured while adding master data. Please try again..."); } catch (Exception ex) { return StatusCode(500, ResponseMessages.GetErrorMessage(ResponseMessages.MessageType.Add, ex.Message)); } }
RedDk
Уил,
Вот что меня трясет. Это уже третий репост проблемы. Но я отдаю тебе должное за то, что ты кое-что сделал. Даже несмотря на то, что создание кода для CREATE TABLE не относится к области JSON. Так же, как и в области C#.
Во всяком случае, чтобы сохранить нить жизни здесь @ QA, ответьте на комментарий. Или воспользуйтесь поиском, введя несколько слов, которые содержит каждый комментарий ... возможно, те, которые вы считаете наиболее заметными