NotMapped
和 IgnoreMap
是两个不同的概念,通常用于不同的上下文中。
- NotMapped:
NotMapped
是一个特性(Attribute),主要用于 Entity Framework 中的 Code First 开发。- 当你使用 Entity Framework Code First 进行数据模型的定义时,有时你可能希望某个属性在数据库中不被映射为表的列。这可能是因为该属性是计算得到的,或者是其他原因。
- 使用
NotMapped
特性,你可以标记某个属性,告诉 Entity Framework 不要将其映射到数据库表中。
csharpusing System.ComponentModel.DataAnnotations.Schema; public class MyEntity { public int Id { get; set; } public string Name { get; set; } [NotMapped] public string CalculatedValue { get; set; } }
- IgnoreMap:
IgnoreMap
通常不是一个标准的特性,但可能是某些映射库或 AutoMapper 等映射工具中的一种约定。- 在 AutoMapper 中,你通常使用
ForMember
方法来配置映射规则,如果你不想映射某个属性,可以使用Ignore
方法。
csharpCreateMap<MySource, MyDestination>() .ForMember(dest => dest.SomeProperty, opt => opt.Ignore());
这里
Ignore()
的作用相当于告诉 AutoMapper 在进行对象映射时忽略源对象的SomeProperty
属性。
总的来说,NotMapped
是 Entity Framework 特有的,用于告诉 EF 不要将某个属性映射到数据库表中;而 IgnoreMap
可能是一些映射工具的约定,用于告诉映射工具在对象映射时忽略某个属性。在 AutoMapper 中,Ignore
方法的使用更为普遍。