Linq或lambda选择所有修改一个的字段

时间:2018-08-15 15:00:29

标签: c# linq lambda

有什么办法可以选择查询中的所有字段,却可以像这样修改一个字段?

from pprint import pprint
def getAllAssets(api, token):

    url = api + '/v1/assettracking/assets?inline=location'
    headers = {'authorization': 'Bearer ' + token, 'content-type': 'application/json'}

    data = requests.get(url,  headers=headers)
    if data.status_code == requests.codes.ok:
        binary = data.content
        All_Assets = json.loads(binary)
        #print("All_Assets = {0}".format(All_Assets))
        pprint(All_Assets)

这是我想要的查询,但是当我具有多个属性时,它会比较冗长。

    var notes = from n in myContext.Notes
                select new 
                {
                  ...   // all fiedls
                  date = n.date.ToString("MM/YYYY") // but one field edited
                }

首选Lambda。

谢谢

编辑:包括原始查询。

2 个答案:

答案 0 :(得分:1)

我建议选择“注释”本身和其他字段。

var notes = from n in myContext.Notes
        select new 
        {
            Note= n
            NewDate = n.date.ToString("MM/YYYY")
        }

因此您的注释将具有所有原始注释以及您在结果中添加的其他属性。

答案 1 :(得分:0)

您使用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();