C# 未显示自定义实体中的OData v4集合
我有DB中的用户实体列表,其中包含以下5个字段。最后一个字段非常大C# 未显示自定义实体中的OData v4集合,c#,odata,C#,Odata,我有DB中的用户实体列表,其中包含以下5个字段。最后一个字段非常大 public class User { [Key] public int Id { get; set; } public string UserName { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public byte[] FromImage {
public class User
{
[Key]
public int Id { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public byte[] FromImage { get; set; }
}
以前,在我的自定义操作方法:GetUsersExcludingPics中,我使用简单的linq查询返回这些用户的列表,并且每个签名都很好
return _dbContext.Users;
但所要求的变更需要:
public class CoordsLoadUsers
{
[Key]
public int ID { get; set; }
public ICollection<UserViewModel> Users { get; set; }
public int TotalUsers { get; set; }
}
公共类CoordsLadusers
{
[关键]
公共int ID{get;set;}
公共ICollection用户{get;set;}
公共int TotalUsers{get;set;}
}
我不得不在ODataConventionBuilder中将它们模拟为实体来识别它们:
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<CoordsLoadUsers>("CoordsLoadUsers");
builder.EntitySet<UserViewModel>("UserViewModel");
ODataConventionModelBuilder=new ODataConventionModelBuilder();
建筑商实体集(“CoordsLadusers”);
builder.EntitySet(“UserViewModel”);
我现在像这样加载我的用户:
var users = _dbContext.Users.Select(u => new UserViewModel
{
Id = u.Id,
UserName = u.UserName,
FirstName = u.FirstName,
LastName = u.LastName
});
var matchingUsers = usersInRegion.Take(10);
coordLoadUsers.Users = matchingUsers.ToList<UserViewModel>();
coordLoadUsers.TotalUsers = usersInRegion.Count();
return coordLoadUsers;
var users=\u dbContext.users.Select(u=>newuserviewmodel
{
Id=u.Id,
用户名=u.UserName,
FirstName=u.FirstName,
LastName=u.LastName
});
var matchingUsers=usersInRegion.Take(10);
coordLoadUsers.Users=matchingUsers.ToList();
coordLoadUsers.TotalUsers=usersInRegion.Count();
返回coordLoadUsers;
我在coordLoadUsers.Users上设置了断点,它似乎填充了用户,但fiddler只显示了这一点。没有提到我的用户列表。我错过了什么?
Users
的内容:
public class CoordsLoadUsers
{
[AutoExpand]
public ICollection<UserViewModel> Users { get; set; }
}
公共类CoordsLadusers
{
[自动展开]
公共ICollection用户{get;set;}
}
- 将$展开选项添加到路由:
?$expand=用户 - 允许$expand选项:
builder .EntitySet<CoordsLoadUsers>(nameof(CoordsLoadUsers)) .EntityType .Expand(nameof(CoordsLoadUsers.Users));
builder .EntitySet(合作伙伴的名称)) .EntityType .Expand(名称(CoordsLadusers.Users));