我是MVC的新手,我认为之前有人回答了这个问题,所以我为重新发布它而道歉。 多年来我一直是一名基于表单的程序员,现在我第一次参与MVC项目,过去3周我阅读了很多书籍,文章,教程并观看了很多关于MVC的视频。
这是我的问题: - 我有3个表:任务,客户和员工 每项任务都有1名客户和1名员工。我从SQL DB上的现有表生成了Tasks表,但我遵循“Code-First”来创建employee表和Customer表。我不确定我是否在这些表之间建立了正确的关系。我想要做的是显示所有任务+ userNAME + 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 CustomerModel
{
[Key]
public String ID { get; set; }
public String Number { get; set; }
}
员工
public class EmployeeModel
{
[Key]
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
非常感谢
答案 0 :(得分:0)
您可以使用这两种模式,但我建议您使用CodeFirst,创建entites来存储数据和视图模型来显示数据:
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; }
}
在客户律师中,为Task
模型创建ViewModel:
public class TaskViewModel
{
public Task Task { get; set; }
public EmployeeModel Employee { get; set; }
public ApplicationUser User { get; set; }
public CustomerModel Customer { get; set; }
}
在您的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..