在保存到数据库之前操作实体

问题描述 投票:0回答:1

我无法理解这里的某些内容。我正在尝试操作正在创建的实体中的字段,但它没有按预期工作。

简而言之,我试图通过拆分电子邮件来更改包含电子邮件的字段,然后添加

;
分隔符以在保存到数据库之前区分不同的电子邮件。

这是我的代码:

public async Task<IActionResult> OnPost(Models.Requests.Request newRequest)
{
    newRequest.RequestStatusID = (int)RequestStatusEnum.Requested;
    newRequest.CreatedBy = User.Identity.Name;
    newRequest.CreatedDate = DateTime.Now;
    newRequest.LastRequestDate = DateTime.Now;

    if (!String.IsNullOrEmpty(newRequest.CCRecipients))
    {
        string[] emailSeparators;
        string ccRecipients = "";
        emailSeparators = newRequest.CCRecipients.Split(new Char[] { ' ', ',', ';' });

        foreach (var email in emailSeparators)
        {
            //ccRecipients.Concat(email + "; ");
            
            // I have tried two different ways to concatenate the string
            ccRecipients = email.Trim() + "; ";
        }

        // This is where I'm trying to manipulate the string into the field
        // To my understanding this is possible but I could be wrong
        newRequest.CCRecipients = ccRecipients;
    }

    await _changeControlContext.AddAsync(newRequest);
    await _changeControlContext.SaveChangesAsync();

    // Other code that is being done

    return new RedirectToPageResult("RedirectsToAnotherPage");
}

可能有更好的方法来处理这个问题,但现在我想了解为什么这不起作用或者我忽略了什么。

理论上它应该有效,但事实并非如此。这里可能有什么问题?

编辑:当我的意思是不工作时,我的意思是所述请求的

CCRecipients
字段的值没有保存在数据库中。

例如:

[email protected]; [email protected]
。但在数据库中,似乎没有存储任何内容。它是一个空白而不是空。抱歉,不太清楚

c# .net asp.net-mvc entity-framework
1个回答
0
投票

替换现有代码行

ccRecipients = email.Trim() + "; ";

ccRecipients = ccRecipients + email.Trim() + "; ";

© www.soinside.com 2019 - 2024. All rights reserved.