【发布时间】:2018-08-23 06:55:35
【问题描述】:
我有一个问题...
我需要将一个列表分成两个对象,我有下一个代码:
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 可以并自动执行 Include。
你能帮帮我吗?怎么了?有可能这样做吗?谢谢大家。
【问题讨论】:
标签: c# asp.net-mvc entity-framework-6 ef-code-first lazy-loading