c# - 如何使用 Dapper.net 扩展忽略类属性?

标签 c# dapper dapper-extensions

我正在使用 Dapper.net Extensions 并且想忽略某些属性而不必编写完整的自定义映射器。正如您在下面的 ClassMapper 中看到的那样,当我真正想做的只是忽略一个属性时,有很多冗余代码。实现这一目标的最佳方法是什么?

我喜欢这里提供的答案 https://stackoverflow.com/a/14649356但我找不到定义“Write”的命名空间。

public class Photo : CRUD, EntityElement
{
    public Int32 PhotoId { get; set; }
    public Guid ObjectKey { get; set; }
    public Int16 Width { get; set; }
    public Int16 Height { get; set; }
    public EntityObjectStatus ObjectStatus { get; set; }
    public PhotoObjectType PhotoType { get; set; }
    public PhotoFormat2 ImageFormat { get; set; }
    public Int32 CategoryId { get; set; }

    public int SomePropertyIDontCareAbout { get; set; }
}


public class CustomMapper : DapperExtensions.Mapper.ClassMapper<Photo>
{
    public CustomMapper()
    {
        Map(x => x.PhotoId).Column("PhotoId").Key(KeyType.Identity);
        Map(x => x.ObjectKey).Column("ObjectKey");
        Map(x => x.Width).Column("Width");
        Map(x => x.Height).Column("Height");
        Map(x => x.ObjectStatus).Column("ObjectStatus");
        Map(x => x.PhotoType).Column("PhotoType");
        Map(x => x.ImageFormat).Column("ImageFormat");
        Map(x => x.CategoryId).Column("CategoryId");

        Map(f => f.SomePropertyIDontCareAbout).Ignore();
    }
}

最佳答案

WriteAttribute 类位于 Dapper.Contrib.Extensions 命名空间中——它是 Dapper.Contrib 项目的一部分。您可以通过 nuget 添加它,包名为“Dapper.Contrib”

关于c# - 如何使用 Dapper.net 扩展忽略类属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291186/

相关文章:

c# - 将数组的值保存在一个字符串中

c# - 如何将表值参数传递给 .NET Core 中的 Dapper?

c# - Dapper 查询列表返回类型

asp.net-web-api - 使用 Dapper micro-orm 进行基于 token 的身份验证

c# - 如何在使用 DapperExtensions 映射时指定 Schema?

c# - [通用 Windows 平台] 中的 System.Net.Http.HttpClient 无法正常工作

c# - 循环遍历 Entity Framework 6 中的表格

c# - Substring 会创建另一个 C# 实例吗?

stored-procedures - 使用 dapper 将一组复杂对象传递给存储过程

c# - 如何记录/获取由 Dapper Extensions 自动生成的 SQL 查询?