[英]Outer Join on two List<> objects returned from entity framework query
[英]Divide List object in two objects with Entity Framework
我有个问题...
我需要将一个列表分为两个对象,我有下一个代码:
public class User
{
[Key]
public Guid Id { get; set; }
public virtual List<PersonalData> _PersonalData
{
get
{
List<PersonalData> listDP = new List<PersonalData>();
if (PersonalData != null)
{
listDP.Add(PersonalData);
}
if (InitialsPersonalData != null)
{
listDP.Add(InitialsPersonalData);
}
return listDP;
}
set
{
InitialsPersonalData = value.FirstOrDefault(dp => dp.IsInitialData);
PersonalData = value.FirstOrDefault(dp => !dp.IsInitialData);
}
}
[NotMapped]
public PersonalData InitialsPersonalData { get; set; }
[NotMapped]
public PersonalData PersonalData { get; set; }
}
public class PersonalData
{
[Key, ForeignKey("User"), Column(Order = 0)]
public Guid User_Id { get; set; }
[Key, Column(Order = 1)]
public bool IsInitialData { get; set; }
public virtual User User { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Name { get; set; }
public string Surname { get; set; }
}
public class Document
{
[Key, ForeignKey("User"), Column(Order = 0)]
public Guid User_Id { get; set; }
[Key, Column(Order = 1), DatabaseGenerated(DatabaseGeneratedOption.None)]
public DocumentType DocumentType { get; set; }
public virtual User User { get; set; }
public string DocumentNumber { get; set; }
}
有可能吗? 我正在使用延迟加载。 get方法有效,但set方法无效,切勿输入set方法。
我尝试使用_PersonalData作为私有和公共的,带有虚拟的和不带有虚拟的...问题是当我这样做时:
dbContext.Users.Where(......)
PersonalData和InitialPersonalData始终为null,Documents可以正常运行,并且可以正确地包含。
你能帮我吗? 怎么了? 有可能吗? 谢谢大家
PersonalData
和InitialPersonalData
没有映射到数据库中,因此您不能在数据库端使用它们。
在使用它们之前,需要使用dbContext.Users.ToList()
来实现您的数据,但这将调出您的整个Users表,并且根据大小,如果您有任何其他条件来过滤您的数据,这将使您的应用程序变慢在实现之前应用表格,以提高性能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.