【问题标题】:Entity Framework ViewModel实体框架视图模型
【发布时间】:2015-08-28 03:33:22
【问题描述】:

我在数据库中有两个没有任何定义关系的表。

    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;
    }

【问题讨论】:

  • 尝试在db.Person中改成p

标签: c# entity-framework viewmodel


【解决方案1】:

您必须将Person 表与Car 表联接,然后使用此联接组生成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();

【讨论】:

  • 正是医生所要求的。谢谢!
【解决方案2】:

你在同一张表之间做一个连接改变第一个表:

from p in db.Person

【讨论】:

    猜你喜欢
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多