【问题标题】:Asp.Net Web Api, Return or inklude value from Foreign tabel "Code-First database"Asp.Net Web Api,从外部表“代码优先数据库”返回或包含值
【发布时间】:2017-04-23 19:29:44
【问题描述】:

我正在尝试返回单个员工,包括外国表中的值。

这是我的 Employee 模型类

public class Employee
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int EmployeeId { get; set; }

        [Required]
        [MaxLength(100)]
        public string EmployeeName { get; set; }

        [ForeignKey("Department")]
        public int DepartmentId { get; set; }
        public Department Department { get; set; }

        [ForeignKey("Gender")]
        public int GenderId { get; set; }
        public Gender Gender { get; set; }


    }

部门和性别模型类

public class Department
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int DepartmentId { get; set; }
        [Required]
        [MaxLength(50)]
        public string DepartmentName { get; set; }
    }

public class Gender
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int GenderId { get; set; }
        [Required]
        [MaxLength(50)]
        public string GenderName { get; set; }
    }

使用下面的代码,我可以在返回时返回包含的部门名称和性别名称

all employees
// GET: api/Employees
        public IQueryable<Employee> GetEmployees()
        {
            return db.Employees.Include(c => c.Department).Include(g => g.Gender); ;
        }

但是当我想退回一名单身员工时,我不知道如何退回……我将部门和性别设为空。 这是我的代码。我不知道如何在这个单一员工中包含部门名称和性别名称。我只得到了 DepartmentId 和 GenderId,但没有得到 DepartmentName 和 GenderName。

[ResponseType(typeof(Employee))]
        public async Task<IHttpActionResult> GetEmployee(int id)
        {
            Employee employee = await db.Employees.FindAsync(id);
            if (employee == null)
            {
                return NotFound();
            }

            return Ok(employee);
        }

提前谢谢你!

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-web-api


    【解决方案1】:

    试试

    return await db.Employees.Include(c => c.Department).Include(g => g.Gender).SingleAsync(e => e.EmployeeId == id);

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2013-04-20
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多