我在ASP.NET Core 2.0中使用EF Core代码优先模型。
为了简化模型,我尝试合并FirstName
模型的LastName
和ApplicationUser
字段:
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仅保存姓氏。
我的假设是,我可以通过某种属性来装饰我的字段,并在字符串中包含两个名称?
提前致谢。
答案 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}";