如何从数据库中的firstName和lastName获取第一个字符并分配给对象?

时间:2018-05-02 12:46:36

标签: c# linq

我是新手。我从数据库获取数据并以下列方式存储每个元组以形成列表:

var dataFromDB = (
    from to in _context.Time
    join user in _context.Users
    on to.UserId equals user.Id
    select new Events
    {
        userId = user.Id,
        title = user.FirstName[0] + " " + user.LastName[0],
        ...
    }).ToList();

我希望title得到FirstNameLastName的首字母,其中FirstNameLastName来自Users表。例如,如果FirstNameJohnLastNameDoe,那么我希望title拥有JD

Events类的方式如下:

public class CalendarEvents
{
    public string userId { get; set; }
    public string title { get; set; }               
    ...
}

修改1.0

在运行代码时,我遇到以下异常:

  

类型' System.ArgumentNullException'的异常发生在mscorlib.dll但未在用户代码中处理。

     

附加信息:值不能为空。

编辑2.0

FirstNameLastName的方式如下:

[Required(ErrorMessage = "Please enter first name")]
[Display(Name = "First Name")]
public string FirstName { get; set; }

[Required(ErrorMessage = "Please enter last name")]
[Display(Name = "Last Name")]
public string LastName { get; set; }

1 个答案:

答案 0 :(得分:0)

如果您想要第一个初始和第二个首字母,我建议:

title = user.FirstName.FirstOrDefault().ToString()
    + user.LastName.FirstOrDefault().ToString(),

因为,user.FirstName.FirstOrDefault()会返回FirstName中的第一个字符。