首页 > 解决方案 > 更新数据库中的数据

问题描述

我正在学习工作单元、存储库和服务。现在我不知道如何更新数据库中的数据

如何根据 id 更新数据?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AutoMapper;
using DataAccess;
using DataAccess.UoW;
using Model;

namespace ClassLibrary1
{
    public class Service
    {
        private readonly Unit _uow;

        public Service()
        {
            _uow = new Unit();
        }

        public IEnumerable<Mdl> GetAllLogins()
        {
            var logins = _uow.Register.GetAll().ToList();

            if (logins.Any())
            {
                var config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap<Table_1, Mdl>();
                });

                IMapper mapper = config.CreateMapper();
                var dest = mapper.Map<List<Table_1>, List<Mdl>>(logins);
                return dest;
            }

            return null;
        }

        public Mdl UpdateId(int Id)
        {
            var EmpId = _uow.Register.GetByID(Id);

            if(EmpId != null)
            {
                var config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap<Mdl, Table_1>();
                });

                IMapper mapper = config.CreateMapper();
                var dest = mapper.Map<Mdl, Table_1>(EmpId); //Issue Arises here
                return dest;
            }

            return null;
        }
    }
}

我收到此错误:

无法从 DataAccess.Table1 转换为 Model.Mdl

标签: c#asp.netasp.net-mvc

解决方案


在映射时,我们需要在更新后将模型与表映射,您需要将表与模型映射

只是一个小小的改变

了解映射的概念

public Mdl UpdateId(int Id)
{
    var EmpId = _uow.Register.GetByID(Id);

    if(EmpId != null)
    {
        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap<Mdl, Table_1>();
        });

        IMapper mapper = config.CreateMapper();
        var dest = mapper.Map<Table_1,Mdl>(EmpId);
        return dest;
    }

    return null;
}

推荐阅读