c# - ASP.NET - 我如何创建具有匿名类型的列表
问题描述
我想在我的数据库中搜索用户并在 WHERE 语句中创建新类型。但是当我这样做时,我无法在我的列表中添加范围以进行返回。
我在“AllUsers.AddRange(user);”中得到错误
var AllUsers = new List<string>();
var url = "https://localhost:44356/";
string[] namelist = name.Split(" ");
foreach (var n in namelist)
{
var user = await context.Users.Where(r => r.FirstName.ToLower().Contains(n) || r.LastName.ToLower().Contains(n)).Select(
u => new
{
id = u.Id,
Name = u.FirstName + u.LastName,
Beschreibung = u.Description,
Avatar = url + u.ProfileImagePath.Remove(0, 58),
Header = url + u.HeaderImagePath.Remove(0, 58),
}).ToListAsync();
AllUsers.AddRange(user);
}
var mitglieder = AllUsers.Distinct().ToList();
return Ok(mitglieder);
解决方案
那是因为您的实体user
是 anobject
并且您正试图将其存储在strings
. 您可以创建一个新的类UserDto
,并存储一个列表UserDto
,而不是一个列表,因为稍后您可能会最终引用该匿名对象的某些属性,userDto 可能对此很有用
//var AllUsers = new List<**string**>(); not this
var AllUsers = new List<UserDto>(); //this
public class UserDto
{
public int Id {get; set;}
public string Name {get; set;}
public string Beschreibung {get; set;}
public string Avatar {get; set;}
public string Header {get; set;}
}
var AllUsers = new List<object>(); //or this
推荐阅读
- json - 通过实体框架在 json 字段中搜索
- nginx - 如何为无 ALPN 客户端配置 Nginx 仅支持 HTTP2
- python - Python OpenCV:使用 opecv 视频流进行多线程处理
- microsoft-dynamics - 用于将更改发布到 ServiceBus 的 Common Data Services Logic App Connector 或服务端点
- c# - OpenGL4 - 如何旋转对象以查看另一个对象
- git - Github SSH 密钥被忽略
- typescript - 为什么打字稿将任何分配给明确定义的类型?
- python - 用换行符分隔 python 元组
- docker - 在 Docker 容器中构建 .NET Core 项目时,如何将 GitVersion 集成到 TeamCity 中?
- php - 来自 Web 服务的 PHP 字符串比较