将FirstName / LastName合并为FullName ASP.NET核心标识

时间:2018-05-08 15:31:42

标签: c# asp.net sql-server entity-framework

我在ASP.NET Core 2.0中使用EF Core代码优先模型。

为了简化模型,我尝试合并FirstName模型的LastNameApplicationUser字段:

public class ApplicationUser : IdentityUser<int>
...
public string FirstName { get; set; }
public string LastName { get; set; }
...

...
public string FullName { get; set; }
...

但是,当我提供种子数据时:

...
FullName = "Test McTesterson"

SQL Server仅保存姓氏。

我的假设是,我可以通过某种属性来装饰我的字段,并在字符串中包含两个名称?

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果目标是简化模型的使用,我建议改为使用计算字段:

public string FullName 
{ 
    get { return string.Format("{0} {1}", FirstName, LastName); }
}

如果您想获得更好的体验,可以添加一种方法来进行格式化:

public string GetFullName(string format)
{
    return string.Format(format, FirstName, LastName);
} 

样本用法:

var name = user.GetFullName("{0} {1}"); //returns John Doe
var name2 = user.GetFullName("{1}, {0}"); //returns Doe, John

答案 1 :(得分:0)

正如其他人所说,计算领域是可行的方法。但是,对我来说最干净的解决方案是使用字符串插值和表达式主体:

public string FullName => $"{FirstName} {LastName}";