[英]How to add a foreign key into a table using one-to-one relationship in ASP.NET Core 6 Web API?
[英]One-to-One relationship using Web API 2
我正在尝试使用WebAPI 2 Get方法填充DataGrid。 我有一个User类和一个UserAddress ,它们与它们的代码之间具有一对一的关系,如下所示:
public partial class User
{
public int UserId { get; set; }
public string UserName { get; set; }
public string UserType { get; set; }
public virtual UserAddress UserAddress { get; set; }
}
public partial class UserAddress
{
public int UserId { get; set; }
public string UserAddress1 { get; set; }
public virtual User User { get; set; }
}
我的客户端代码如下:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseAddress);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//HTTP Get
HttpResponseMessage response = await client.GetAsync("api/Users");
if (response.IsSuccessStatusCode)
{
var users = response.Content.ReadAsAsync<IEnumerable<User>>().Result;
grdList.ItemsSource = users;
}
else
{
MessageBox.Show(response.ReasonPhrase);
}
}
Controller类的代码如下:
// GET: api/Users
public IQueryable<User> GetUsers()
{
return db.Users;
}
我能够以没有任何关系的方式检索数据,但是以一对一的关系我无法这样做,而且我也不知道问题出在哪里。
如果您要返回Json,则可能是循环参考问题,请参见以下链接中的部分:http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization
特别是与处理循环对象引用和配置JsonMediaTypeFormatter有关的部分
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter; json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.All;
我想知道的另一部分是,是否需要使用linq执行急切加载以返回地址?
返回db.users.Include(p => p.address)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.