C#类中 特性NotMapped 和 IgnoreMap 的区别

.Net技术 码拜 8个月前 (02-01) 1350次浏览 0个评论

NotMappedIgnoreMap 是两个不同的概念,通常用于不同的上下文中。

  1. NotMapped:
    • NotMapped 是一个特性(Attribute),主要用于 Entity Framework 中的 Code First 开发。
    • 当你使用 Entity Framework Code First 进行数据模型的定义时,有时你可能希望某个属性在数据库中不被映射为表的列。这可能是因为该属性是计算得到的,或者是其他原因。
    • 使用 NotMapped 特性,你可以标记某个属性,告诉 Entity Framework 不要将其映射到数据库表中。
    csharp
    using System.ComponentModel.DataAnnotations.Schema;
    
    public class MyEntity
    {
        public int Id { get; set; }
        public string Name { get; set; }
    
        [NotMapped]
        public string CalculatedValue { get; set; }
    }
    
  2. IgnoreMap:
    • IgnoreMap 通常不是一个标准的特性,但可能是某些映射库或 AutoMapper 等映射工具中的一种约定。
    • AutoMapper 中,你通常使用 ForMember 方法来配置映射规则,如果你不想映射某个属性,可以使用 Ignore 方法。
    csharp
    CreateMap<MySource, MyDestination>()
        .ForMember(dest => dest.SomeProperty, opt => opt.Ignore());
    

    这里 Ignore() 的作用相当于告诉 AutoMapper 在进行对象映射时忽略源对象的 SomeProperty 属性。

总的来说,NotMapped 是 Entity Framework 特有的,用于告诉 EF 不要将某个属性映射到数据库表中;而 IgnoreMap 可能是一些映射工具的约定,用于告诉映射工具在对象映射时忽略某个属性。在 AutoMapper 中,Ignore 方法的使用更为普遍。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#类中 特性NotMapped 和 IgnoreMap 的区别
喜欢 (26)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!