Entity Framework 视图模型
Entity Framework ViewModel
我在数据库中有两个表,没有任何定义的关系。
public class Person
{
public int PersonID { get; set; }
public string Name { get; set; }
}
public class Car
{
public int CarID { get; set; }
public string Model { get; set; }
public int PersonID { get; set; }
}
我创建了一个 PersonViewModel 如下
public class PersonViewModel
{
public int PersonID { get; set; }
public string Name { get; set; }
public virtual ICollection<Car> Cars { get; set; }
}
我想做一些如下的事情,但显然这是不正确的。
任何帮助将不胜感激。谢谢
public PersonViewModel GetPerson(int personID)
{
var query = from p in db.Car
join c in db.Car on p.PersonID equals c.PersonID
where p.PersonID == personID
select new PersonViewModel()
{
PersonID = p.PersonID,
Name = p.Name
Cars = new List<Car>()
{
CarID = c.CarID,
Model = c.Model,
PersonID = p.PersonID
}
};
var person = query.FirstOrDefault();
return person;
}
您正在同一 table 更改第一个 table:
之间进行连接
from p in db.Person
您必须加入 Person
table 和 Car
table,然后使用此加入组生成 Cars
的列表:
var query = from p in db.Person
join c in db.Car on p.PersonID equals c.PersonID into personCars
where p.PersonID == personID
select new PersonViewModel()
{
PersonID = p.PersonID,
Name = p.Name
Cars = personCars.ToList()
};
var person = query.FirstOrDefault();
我在数据库中有两个表,没有任何定义的关系。
public class Person
{
public int PersonID { get; set; }
public string Name { get; set; }
}
public class Car
{
public int CarID { get; set; }
public string Model { get; set; }
public int PersonID { get; set; }
}
我创建了一个 PersonViewModel 如下
public class PersonViewModel
{
public int PersonID { get; set; }
public string Name { get; set; }
public virtual ICollection<Car> Cars { get; set; }
}
我想做一些如下的事情,但显然这是不正确的。 任何帮助将不胜感激。谢谢
public PersonViewModel GetPerson(int personID)
{
var query = from p in db.Car
join c in db.Car on p.PersonID equals c.PersonID
where p.PersonID == personID
select new PersonViewModel()
{
PersonID = p.PersonID,
Name = p.Name
Cars = new List<Car>()
{
CarID = c.CarID,
Model = c.Model,
PersonID = p.PersonID
}
};
var person = query.FirstOrDefault();
return person;
}
您正在同一 table 更改第一个 table:
之间进行连接from p in db.Person
您必须加入 Person
table 和 Car
table,然后使用此加入组生成 Cars
的列表:
var query = from p in db.Person
join c in db.Car on p.PersonID equals c.PersonID into personCars
where p.PersonID == personID
select new PersonViewModel()
{
PersonID = p.PersonID,
Name = p.Name
Cars = personCars.ToList()
};
var person = query.FirstOrDefault();