ahmed_sa Ответов: 0

Как получить свойство модели employee as employeename, ветвь от результирующей переменной в контроллере


Проблема
Как получить свойство модели employee в виде EmployeeName,BranchCode из результирующей переменной в контроллере ?
Я использую asp.net core 2.1 visual studio 2017 repository pattern Generic
но проблема не может отображать или показывать модели в EmployeesController
если я пишу переменную результата она не показывает EmployeeName или BranchCode

public class EmployeesController : Controller
    {
        private readonly IEmployees _context;
  

        public EmployeesController(IEmployees context)
        {
            _context = context;
       
        }

public IActionResult Create(int? nextID)
        {
            
                
                int NextVal = nextID.HasValue ? nextID.Value : 0;
                model.EmployeeId = NextVal;
                var result =  _context.GetAll().SingleOrDefaultAsync(m => m.EmployeeId == NextVal);
                model.EmployeeName = result.EmployeeName
                model.BranchCode = result.BranchCode;

                
            }
Employee Models 
 public class Employee
    {
        [Key]
        public int EmployeeId { get; set; }
        public int BranchCode { get; set; }
        public string EmployeeName { get; set; }


Что я уже пробовал:

in service layer i have interface Layer IEmployees as below :

public  interface IEmployees : IRepository<Employee>
    {

    }
Irepository Interface 

 public interface IRepository<T>
    {
        T Get(int id);
        T GetById(object id);
        T GetById(object id,object BranchCode);
        IQueryable<T> GetAll();
        Task<ICollection<T>> GetAllAsyn();
        IQueryable<T> GetAllIncluding(params Expression<Func<T, object>>[] includeProperties);
        Task<T> GetAsync(int id);
    }

     And implementation of Irepository<t> is

       
 public class EFRepository<T> : IRepository<T> where T : class
    {
        protected TabDbContext _context { get; set; }
        public EFRepository(TabDbContext context)
        {
            _context = context;
        }
       
        public IQueryable<T> GetAll()
        {
            return _context.Set<T>();
        }

        public virtual async Task<ICollection<T>> GetAllAsyn()
        {

            return await _context.Set<T>().ToListAsync();
        }

        public virtual T Get(int id)
        {
            return _context.Set<T>().Find(id);
        }
        public virtual T GetById(object id)
        {
            return _context.Set<T>().Find(id); 
        }

     IN TabDbContext is my dbcontext as below : 

 public class TabDbContext : DbContext
    {
        public TabDbContext(DbContextOptions<TabDbContext> options)
: base(options)
        { }

        public DbSet<Employee> Employees { get; set; }
     
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<Employee>()
               .HasKey(t => new { t.EmployeeId,t.BranchCode });
        }

Gerry Schmitz

Перепроектировано. Наложение общего DAL на ORM. Вот почему эф "отстой" (не).

И вы даже не проверяете результаты ваших запросов; которые могут быть нулевыми.

0 Ответов