我正在尝试使用entity framework 5.0
从数据库中进行选择。
我有一个名为Persons
的表格,由PersonsImages
引用,因此基本上Persons
的一条记录可以有多个PersonsImages
。
我已经制作了一个给人员的select语句,但我也希望将PersonsImages作为List<PersonsImages>
,并将它们放在一个自定义对象中。
这是我到目前为止的代码:
var person = new Persons();
using (var context = new PersonEntities())
{
person = context.Persons.Where(x => x.personId == 555)
.Select(xxx => new Persons
{
personName = xxx.personName,
personLastName = xxx.personLastName,
PersonImages = xxx.PersonsImages // there's an error here
})
.FirstOrDefault();
}
Persons
和PersonsImages
类看起来像那样(它们是实体框架生成的类的副本):
public partial class Persons
{
public Persons()
{
this.PersonsImages = new HashSet<PersonsImages>();
}
public string personName { get; set; }
public string personLastName { get; set; }
public virtual ICollection<PersonsImages> PersonsImages { get; set; }
}
public partial class PersonsImages
{
public string imageName { get; set; }
public byte[] image { get; set; }
public virtual Persons Persons { get; set; }
}
我知道我可以进行第二次选择并“手动”找到它们,但是不能一次性完成它,就像entity framework
通常做的一样吗?
答案 0 :(得分:1)
假设您的错误是“无法在LINQ to Entities查询中构造对象” - 项目为匿名类型,请调用ToArray()
方法枚举结果,然后投影到{{1的新实例}}:
Persons