Ignorer la propriété sur la propriété du modèle

dapper dapper-extensions dapper-rainbow

Question

Comment puis-je ignorer une propriété de mon modèle en utilisant des extensions Dapper / Dapper / Dapper Rainbow ou toute autre

de ces bibliothèques dapper?

Réponse acceptée

Le créateur de Dapper, Sam Saffron, a répondu à cette exigence en réponse aux questions d'un autre utilisateur SO ici . Vérifiez-le.

De plus, si vous souhaitez utiliser la bibliothèque Dapper Extensions que Sam a mentionnée dans sa réponse, vous pouvez l'obtenir de Github ou de Nuget.

Voici un exemple d'ignorance des propriétés du projet de test de la bibliothèque.

using System;
using System.Collections.Generic;
using DapperExtensions.Mapper;

namespace DapperExtensions.Test.Data
{
    public class Person
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public DateTime DateCreated { get; set; }
        public bool Active { get; set; }
        public IEnumerable<Phone> Phones { get; private set; }
    }

    public class Phone
    {
        public int Id { get; set; }
        public string Value { get; set; }
    }

    public class PersonMapper : ClassMapper<Person>
    {
        public PersonMapper()
        {
            Table("Person");
            Map(m => m.Phones).Ignore();
            AutoMap();
        }
    }
}

Réponse populaire

Dapper.Contrib a un support intégré pour marquer une colonne comme calculée: ajoutez ComputedAttribute pour permettre la prise en charge des colonnes calculées sur Insert . Voici comment cela fonctionne:

class MyModel
{
  public string Property1 { get; set; }

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

Les propriétés marquées avec l'attribut Computed seront ignorées sur les insertions.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi