Asp.net mvc 5 MVC使用多个表,2个表先用代码生成,1个表先用DB生成

Asp.net mvc 5 MVC使用多个表,2个表先用代码生成,1个表先用DB生成,asp.net-mvc-5,Asp.net Mvc 5,我是MVC的新手,我想以前有人回答过这个问题,所以我很抱歉重新发布了这个问题。 我已经做了很多年基于表单的程序员,现在我第一次在做一个MVC项目,在过去的三周里,我阅读了很多关于MVC的书籍、文章、教程,并观看了很多视频 我的问题是: -我有3个表:任务、客户和员工 每个任务有一名客户和一名员工分配给它。我从SQL DB上现有的表生成了Tasks表,但我首先按照代码创建employee表和Customer表。我不确定我是否在这些表之间建立了正确的关系。我想做的是显示所有任务+用户名+Custom

我是MVC的新手,我想以前有人回答过这个问题,所以我很抱歉重新发布了这个问题。 我已经做了很多年基于表单的程序员,现在我第一次在做一个MVC项目,在过去的三周里,我阅读了很多关于MVC的书籍、文章、教程,并观看了很多视频

我的问题是: -我有3个表:任务、客户和员工 每个任务有一名客户和一名员工分配给它。我从SQL DB上现有的表生成了Tasks表,但我首先按照代码创建employee表和Customer表。我不确定我是否在这些表之间建立了正确的关系。我想做的是显示所有任务+用户名+CustomerName,而不是UserID和CustomerID

以下是我的模型:

任务:

public partial class Tasks
{        
    public string TaskID { get; set; }
    public string Name { get; set; }
    public System.DateTime StartDate { get; set; }
    public Nullable<System.DateTime> DueDate { get; set; }
    public Nullable<int> Complete { get; set; }
    public string Description { get; set; }
    public Nullable<int> Priority { get; set; }
    public string Status { get; set; }
    public Nullable<System.DateTime> AssignementDate { get; set; }
    public Nullable<System.DateTime> CreationDate { get; set; }
    [ForeignKey ("Employee")]
    public string EmployeeID { get; set; }
    public virtual ApplicationUser _User { get; set; }
    [ForeignKey("Customer")]
    public string CustomerID { get; set; }
    public virtual CustomerModel _Customer { get; set; }
}
雇员

public class EmployeeModel
{
    [Key]
    public string Id { get; set; }
    public string FirstName { get; set; }

    public string LastName { get; set; }


}
以及如何从我的任务控制器访问员工的名字。 最后一个问题:在模型之间混合一些代码优先和一些数据库优先是可以的,还是我应该遵循一种模式。
非常感谢

您可以同时使用这两种模式,但我建议您使用我的方法,即使用CodeFirst,创建实体来存储数据,并使用viewmodels来显示数据:

public class Task
{        
    public int TaskID { get; set; }
    //your other properties here...

    public int EmployeeId { get; set; }
    public int UserId { get; set; }
    public int CustomerId { get; set; }
}
在“客户端律师”中,为任务模型创建ViewModel:

在GetTask或LoadTasks方法中,填写此视图模型:

public TaskViewModel GetTask(int id) 
{
   TaskViewModel model = new TaskViewModel();
   model.Task = _db.GetTaskById(id);
   model.Employee = _db.GetEmployeeById(model.Task.EmployeeId);
   model.User = _db.GetUserById(model.Task.UserId);
   model.Customer = _db.GetCustomerById(model.Task.CustomerId);
   return model;
}
现在,您可以获取与任务相关的所有数据:

TaskId, TaskName, Created user's name + surname, Employee's name surname, Custemer's name  + surname etc..

谢谢您的回答,但我没有属性_db.GetEmployeeById是否应该将其添加到我的员工控制器?对于其他的_db.GetUserById和_db.GetCustomerById也是一样的。还有_db是我任务的db上下文吗?这只是个想法。您可以在dbContext类中创建该方法,也可以不使用以下方法来创建:_db.TaskTable.where e=>e.TaskId==id;。这是一个GetTaskById方法
public TaskViewModel GetTask(int id) 
{
   TaskViewModel model = new TaskViewModel();
   model.Task = _db.GetTaskById(id);
   model.Employee = _db.GetEmployeeById(model.Task.EmployeeId);
   model.User = _db.GetUserById(model.Task.UserId);
   model.Customer = _db.GetCustomerById(model.Task.CustomerId);
   return model;
}
TaskId, TaskName, Created user's name + surname, Employee's name surname, Custemer's name  + surname etc..