¿Cómo ignorar una propiedad de clase usando las extensiones de Dapper.net?

c# dapper dapper-extensions

Pregunta

Estoy usando las extensiones de Dapper.net y me gustaría ignorar ciertas propiedades sin tener que escribir un mapeador personalizado completo. Como puede ver en ClassMapper a continuación, hay una gran cantidad de código redundante cuando todo lo que realmente quiero hacer es ignorar una propiedad. ¿Cuál sería la mejor manera de lograr esto?

Me gusta la respuesta proporcionada aquí https://stackoverflow.com/a/14649356 pero no puedo encontrar el espacio de nombres donde se define 'Escribir'.

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();
    }
}

Respuesta popular

Puede decorar la propiedad con [Calculado] y la propiedad se ignorará en la inserción. Semánticamente puede que no sea perfecto, pero parece hacer el trabajo:

[Computed]
public int SomePropertyIDontCareAbout { get; set; }

Por otra parte, la respuesta de Peter Ritchie es probablemente más acertada con:

[WriteAttribute(false)]
public int SomePropertyIDontCareAbout { get; set; }


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué