Asp.net mvc 如何使用具有LINQ to图元的视图模型
我是ASP.NET MVC新手,但我似乎不理解有关视图模型的规则。我在这里展示的例子肯定与来自不同来源的其他例子相似,所以我完全不知所措 我首先在VS 2013 MVC 5上使用了Entity Framework 6的代码,并创建了以下两个模型Asp.net mvc 如何使用具有LINQ to图元的视图模型,asp.net-mvc,entity-framework,view,model,linq-to-entities,Asp.net Mvc,Entity Framework,View,Model,Linq To Entities,我是ASP.NET MVC新手,但我似乎不理解有关视图模型的规则。我在这里展示的例子肯定与来自不同来源的其他例子相似,所以我完全不知所措 我首先在VS 2013 MVC 5上使用了Entity Framework 6的代码,并创建了以下两个模型 public class Task { public int TaskId { get; set; } public int UserId { get; set; } public Stri
public class Task
{
public int TaskId { get; set; }
public int UserId { get; set; }
public String Title { get; set; }
public String Description { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public virtual User User { get; set; }
}
public class User
{
public int UserId { get; set; }
public String UserName { get; set; }
public String Password { get; set; }
public String FullName { get; set; }
public String Email { get; set; }
public String Status { get; set; }
public String Role { get; set; }
public virtual ICollection<Task> Tasks { get; set; }
}
dbcontext中不应该有viewmodel。这只是一个viewModel,与实体完全不同
public System.Data.Entity.DbSet<FRESH.ViewModel.ManageTasksViewModel>
ManageTasksViewModels { get; set; }
public System.Data.Entity.DbSet
ManageTasksViewModels{get;set;}
感谢所有在这方面给我时间帮助的人,基本上,我再次阅读了Contoso大学的教程,得到了答案,基本上,它与我的第一次尝试非常相似,只是我在尝试
选择“新建管理任务视图模型”
{
.
.
.
};
而我应该说
选择新的ManageTasksViewModel()
{
.
.
.
}
public class ManageTasksController : Controller
{
private FRESHContext db = new FRESHContext();
// GET: ManageTasks
public ActionResult Index()
{
IQueryable<ManageTasksViewModel> query = from tasks in db.Tasks
join users in db.Users on tasks.UserId equals users.UserId
select new ManageTasksViewModel()
{
TaskId = tasks.TaskId,
UserId = users.UserId,
FullName = users.FullName,
Title = tasks.Title,
Description = tasks.Description,
StartDate = tasks.StartDate,
EndDate = tasks.EndDate
};
return View(query.ToList());
}
公共类ManagerTasksController:控制器
{
private FRESHContext db=new FRESHContext();
//获取:管理任务
公共行动结果索引()
{
IQueryable query=来自db.tasks中的任务
在数据库中加入用户。任务上的用户。UserId等于users.UserId
选择新的ManageTasksViewModel()
{
TaskId=tasks.TaskId,
UserId=users.UserId,
FullName=users.FullName,
Title=任务。Title,
描述=任务。描述,
StartDate=tasks.StartDate,
EndDate=tasks.EndDate
};
返回视图(query.ToList());
}
无论如何,希望这对某人有用。详细说明,Hash是说从DbContext中删除这一行。好的,从上下文中删除了ManageTasksViewModel,尽管它自己神奇地出现在那里,lol。但仍然没有运气,有人知道初学者实体链接的好来源吗,我要下载“LINQ for Dummies”now、 别开玩笑! public class ManageTasksController : Controller { private FRESHContext db = new FRESHContext(); // GET: ManageTasks public ActionResult Index() { IQueryable<ManageTasksViewModel> query = from tasks in db.Tasks join users in db.Users on tasks.UserId equals users.UserId select new ManageTasksViewModel() { TaskId = tasks.TaskId, UserId = users.UserId, FullName = users.FullName, Title = tasks.Title, Description = tasks.Description, StartDate = tasks.StartDate, EndDate = tasks.EndDate }; return View(query.ToList()); }