C# Linq或lambda选择所有字段修改一个
有没有办法选择查询中的所有字段,但修改一个字段,如下所示C# Linq或lambda选择所有字段修改一个,c#,linq,lambda,C#,Linq,Lambda,有没有办法选择查询中的所有字段,但修改一个字段,如下所示 var notes = from n in myContext.Notes select new { ... // all fiedls date = n.date.ToString("MM/YYYY") // but one field edited }
var notes = from n in myContext.Notes
select new
{
... // all fiedls
date = n.date.ToString("MM/YYYY") // but one field edited
}
这是我想要的查询,但当我有多个属性时,就不那么冗长了
var note = await _dbContext.ClientChartNotes
.Select(s => new
{
s.ClientChartNoteId,
s.ClientId,
s.ChartNoteType,
s.Title,
s.Note,
ChartNoteDate = s.ChartNoteDate.ToString("MM/dd/yyyy")
})
.FirstOrDefaultAsync(s => s.ClientChartNoteId.Equals(id));
朗姆达优先
谢谢
编辑:包括原始查询。我建议选择注释本身和附加字段
var notes = from n in myContext.Notes
select new
{
Note= n
NewDate = n.date.ToString("MM/YYYY")
}
因此,您的笔记将包含所有原始笔记以及您在结果中添加的其他属性。您使用lambda进行的查询:
var fetchedNote = await myDbContext.Notes // get the collection of all Notes
.Where(note => note.ClientChartNoteId == Id) // take only those notes that ...
.Select(note => new // from every remaining note, make one new object
{ // with only the properties you plan to use
Title = note.Title, // some are original values
...
Date = note.Data.ToString(...), // some are calculated values
})
.FirstOrDefaultAsync();
所以,您只想格式化列表中每个名为date的属性的值?是否打算使用匿名对象?你们有两个不同的模型输入和输出吗?不,只需要所有的属性,但我需要一个特定格式的。像Javascript。。。三个点包括所有属性编辑包括有效查询如果您可以在ClientChartNotes中再添加一个字段,而无需映射到将返回格式化日期ChartNoteDate的实体框架。这应该是最简单的解决方法!必须是精确的属性名称才能在API中返回如果ChartNoteDate为DateTime,如何设置ChartNoteDate=ChartNoteDate.toString gmm/dd/yyyy?是的,因为它是匿名结果。把钞票还给我,我才不管呢。