首页 > 解决方案 > 在 .net 核心中添加实体时出现问题

问题描述

我在.net core中将实体添加到数据库时遇到问题。我的所有代码都执行没有错误,但是数据库中插入了任何记录这是我在下面的添加服务

        public async Task<int> AddHpl(IFormFile ClinicImgUp, AddHealthPlaceViewModel addHealthPlaceViewModel)
    {
        TableHpl tableHpl = new TableHpl
        {
            TabloTitle = addHealthPlaceViewModel.TabloTitle,
            Address = addHealthPlaceViewModel.Address,
            Services = addHealthPlaceViewModel.Services,
            Others = addHealthPlaceViewModel.Others,
            Personels = addHealthPlaceViewModel.Personels,
            CityCode = addHealthPlaceViewModel.CityCode,
            Recid = addHealthPlaceViewModel.Recid,
            Telegram = addHealthPlaceViewModel.Telegram,
            Email = addHealthPlaceViewModel.Email,
            Website = addHealthPlaceViewModel.Website,
            Instagram = addHealthPlaceViewModel.Instagram,
            PlaceCode = addHealthPlaceViewModel.PlaceCode,
            TableHplphones = new List<TableHplphone>
            {
                new TableHplphone
                {
                    Mobile = addHealthPlaceViewModel.Hplphones[0].Mobile,
                    OfficePhone = addHealthPlaceViewModel.Hplphones[0].OfficePhone
                },
                new TableHplphone
                {
                    Mobile = addHealthPlaceViewModel.Hplphones[1].Mobile,
                    OfficePhone = addHealthPlaceViewModel.Hplphones[1].OfficePhone
                }
            }
        };
        if (ClinicImgUp != null && ClinicImgUp.IsImage())
        {

            tableHpl.OfficePic = NameGenerator.GenerateUniqCode() + Path.GetExtension(ClinicImgUp.FileName);
            string imagePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/img", tableHpl.OfficePic);
            await using var stream = new FileStream(imagePath, FileMode.Create);
            ImageResizer.ResizeImage(ClinicImgUp, stream);
        }

        await _context.TableHpls.AddAsync(tableHpl);
        return tableHpl.Hplid;
    }

任何帮助将不胜感激

标签: c#asp.net-core.net-coreentity-framework-coreobject-initializers

解决方案


代替

 await _context.TableHpls.AddAsync(tableHpl);

有了这个

 _context.TableHpls.Add(tableHpl);
await _context.SaveChangesAsync();

而且我认为您还必须添加一些验证:

 TableHpl tableHpl = new TableHpl
        {
            TabloTitle = addHealthPlaceViewModel.TabloTitle,
            Address = addHealthPlaceViewModel.Address,
            Services = addHealthPlaceViewModel.Services,
            Others = addHealthPlaceViewModel.Others,
            Personels = addHealthPlaceViewModel.Personels,
            CityCode = addHealthPlaceViewModel.CityCode,
            Recid = addHealthPlaceViewModel.Recid,
            Telegram = addHealthPlaceViewModel.Telegram,
            Email = addHealthPlaceViewModel.Email,
            Website = addHealthPlaceViewModel.Website,
            Instagram = addHealthPlaceViewModel.Instagram,
            PlaceCode = addHealthPlaceViewModel.PlaceCode
        };
if (addHealthPlaceViewModel.Hplphones!=null &&
     addHealthPlaceViewModel.Hplphones.Count > 0
{
 var tableHplphones = new List<TableHplphone>();

   foreach(var phone in addHealthPlaceViewModel.Hplphones)
     {
     
             tableHplphones.Add(  new TableHplphone
                {
                    Mobile = item.Mobile,
                    OfficePhone = item.OfficePhone
                }
           );
      }

tableHpl.TableHplphones=tableHplphones;
}

推荐阅读