在 EF 代码优先模型中使用 [NotMapped] 很好
Its good to use [NotMapped] in side EF code first Model
在我的案例中,我有一个关于我的模型的问题,我需要一个像这样的额外字段
public class PassportStamp
{
[Key]
public int Id { get; set; }
[MaxLength(10, ErrorMessage = "BloggerName must be 10 characters or less"), MinLength(5)]
public string BloggerName { get; set; }
[Required]
public string Title { get; set; }
[NotMapped]
public string BlogCode
{
get
{
return Title.Substring(0, 1) + ":" + BloggerName.Substring(0, 1);
}
}
}
我可以使用这种方式还是可以为此字段创建一个单独的视图模型
和我也可以通过这种方式使用数据数据注释或为此创建一个单独的视图模型
你是对的,你可以在你的情况下使用[NotMapped]
。 [NotMapped]
在您不想创建 table 列但又想将其与某些自定义属性一起使用的情况下很有用。
例如在您的模型 class Student
中,有字段 FirstName
和 LastName
。如果您的客户需要 FullName
个 Student
对象。那么在这种情况下你可以简单地使用 [NotMapped]
。因为在table中为此创建一个单独的列是没有用的。在整个应用程序中使用 FullName
时,您无需编写自定义逻辑。
在我的案例中,我有一个关于我的模型的问题,我需要一个像这样的额外字段
public class PassportStamp
{
[Key]
public int Id { get; set; }
[MaxLength(10, ErrorMessage = "BloggerName must be 10 characters or less"), MinLength(5)]
public string BloggerName { get; set; }
[Required]
public string Title { get; set; }
[NotMapped]
public string BlogCode
{
get
{
return Title.Substring(0, 1) + ":" + BloggerName.Substring(0, 1);
}
}
}
我可以使用这种方式还是可以为此字段创建一个单独的视图模型 和我也可以通过这种方式使用数据数据注释或为此创建一个单独的视图模型
你是对的,你可以在你的情况下使用[NotMapped]
。 [NotMapped]
在您不想创建 table 列但又想将其与某些自定义属性一起使用的情况下很有用。
例如在您的模型 class Student
中,有字段 FirstName
和 LastName
。如果您的客户需要 FullName
个 Student
对象。那么在这种情况下你可以简单地使用 [NotMapped]
。因为在table中为此创建一个单独的列是没有用的。在整个应用程序中使用 FullName
时,您无需编写自定义逻辑。