如何强制查询检索嵌套元素数据
本文关键字:元素 数据 嵌套 检索 何强制 查询 | 更新日期: 2023-09-27 18:15:10
我正在从我的数据库中使用LINQ to SQL
制作JSON
。我已经设置了Serialization Mode Unidirectional
(所以我可以序列化数据),一旦我查询我的对象(User
),我将其转换为JSON
:
[WebMethod]
public User GetUserByID(int ID)
{
User user = db.User.Where(p => p.ID == ID).FirstOrDefault();
var json = JsonConvert.SerializeObject(user, new IsoDateTimeConverter());
return user;
}
问题是,在结果JSON
上,嵌套的数据/对象(即我对该对象与其他对象/表的关系)是null
。
因此,例如,如果我有3个电话号码(1-n关系)为该用户,而不是检索JSON
数组与这(3)个数字,它放:
"Phones": null,
我如何"强制"User
被查询与所有数据/关系在它里面?
如果我在序列化之前执行这个查询(例如):
var phones = m_oAlumno.Telefono.ToList();
它说"检测到类型'User'的自引用循环。"
在LINQ to SQL中,您可以使用DataLoadOptions加载引用的实体。
var loadOptions = new DataLoadOptions();
loadOptions.LoadWith<User>(u => u.PhoneNumber);
db.LoadOptions = loadOptions;
其中PhoneNumber是一个引用User的实体,并且假设db是你的linq数据上下文