我想将外键对象嵌入到 API 的 .NET JSON 响应中。我有 Rails 背景,格式化 JSON 响应以包含任何找到的外键记录非常简单。但是,我似乎找不到方法来做到这一点。我有一个外键关系设置如下模型:
public class Person
{
[Key]
public int id {get; set;}
public string name {get; set;}
}
public class House
{
[Key]
public int id {get; set;}
public string address {get; set;}
[Required]
public int personId {get; set;}
[ForeignKey("peronsId")]
public Person person {get; set;}
}
但是,当我运行 GET 请求时,我会以以下形式获取房屋:
{
"id":1,
"address":"Middle of Nowhere",
"personId":3
}
当我想要的是:
{
"id":1,
"address":"Middle of Nowhere",
"person":{
"id":3,
"name":"Some Dude"
}
}
或者一些类似的结构。我如何在 .NET 中完成此任务?
在 C# 中将 .NET 4.5 Web API 2 与 Entity Framework 结合使用。
最佳答案
尝试将导航属性设为虚拟
:
public class House
{
//...
[ForeignKey("peronsId")]
public virtual Person person {get; set;}
}
如果您尚未禁用延迟加载行为,则当取消引用相关实体的导航属性时,EF 会自动加载该实体。
另一个选项是使用 Include
扩展方法预先加载导航属性:
datacontext.Houses.Include(h=>h.person);
我建议你检查这个link有关此主题的更多信息
关于c# - 在 .NET 中的 JSON 响应中嵌入外键对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28683236/