0
使用C#,VS2012,MVC4,CodeFirstCodeFirst一对多视图模型查看
我读到这里吨的职位和其他地方大约一对多一个视图模型,但我不能完全得到它。
我有一个程序,地址簿,有两个表,名称和电话。对于每个名字,你可以有很多数字。
namespace AddressBook.Models
{
public class Name
{
public int NameID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
//ref
public ICollection<Phone> Phones { get; set; }
}
}
namespace AddressBook.Models
{
public class Phone
{
public int ID { get; set; }
public string Number { get; set; }
//ref
[Required]
public int NameId { get; set; }
public Name Name { get; set; }
}
}
和我的上下文:以下车型
public class ContactDBContext : DbContext
{
public DbSet<Name> Names { get; set; }
public DbSet<Phone> Phones { get; set; }
}
我DetailViewModel:
public class DetailViewModel
{
public Name ID { get; set; }
public Name FirstName { get; set; }
public Name LastName { get; set; }
public List<Phone> Number { get; set; }
}
现在我的控制,我开始会被卡住。我可以拨打电话列表,但我似乎无法获得独立的姓名记录。
public ActionResult Details(int id = 0)
{
DetailViewModel dvm = new DetailViewModel();
dvm.FirstName = (from n in db.Names select n).Where(m => m.NameID == id).ToString();
dvm.LastName = (from n in db.Names where n.NameID == id select n).ToString();
dvm.Number = (from n in db.Phones select n).Where(m => m.NameId == id).ToList();
//tried a couple of different things
return View(dvm);
//Name name = db.Names.Find(id);
//if (name == null)
//{
// return HttpNotFound();
//}
//return View(name);
}
用户应该能够在手机上表中详细进行一次CRUD查看选定名称的记录。电话CRUD可以在相同或不同的页面上完成,无论哪一个更容易编码。
哦,我在做互联网应用程序开发,而不是电话。但我确实希望稍后再做。感谢你的回答;给我几个,我会深入检查一下。 –
我写的是针对Web应用程序:)是啊,慢慢来。只要告诉我我的代码是否适合你,或者至少是否对你有帮助! 干杯! – photowalker
它为你工作? – photowalker