Maison  >  Article  >  base de données  >  Comment mapper les types longs (ulong) non signés dans Entity Framework ?

Comment mapper les types longs (ulong) non signés dans Entity Framework ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 18:35:30174parcourir

How Do You Map Unsigned Long (ulong) Types in Entity Framework?

Mappage des entiers non signés et des types longs dans Entity Framework

Le mappage prêt à l'emploi d'Entity Framework pour les types de données longs est suffisant pour représentant des valeurs longues signées. Cependant, lorsqu'il s'agit de types longs (ulong) non signés, les choses deviennent un peu plus compliquées. Le fournisseur EF de MySQL ignore les types de données ulong par défaut.

Solution pour ulong

Dans les anciennes versions d'Entity Framework, les types de données non signés n'étaient pas pris en charge. Pour contourner cette limitation pour les colonnes ulong, une solution de contournement consiste à stocker la valeur dans un type de données long pris en charge et à la convertir en ulong si nécessaire.

Pour mettre en œuvre cette solution :

  • Créez une propriété interne __MyVariable mappée à la base de données et de type long.
  • Créez une propriété publique MyVariable attribuée avec [NotMapped], qui représente la valeur longue non signée.
  • Implémentez un getter et un setter pour MyVariable pour effectuer le casting nécessaire.
<code class="csharp">// Avoid modifying the following directly.
// Used as a database column only.
public long __MyVariable { get; set; }

// Access/modify this variable instead.
// Tell EF not to map this field to a Db table
[NotMapped]
public ulong MyVariable
{
    get
    {
        unchecked
        {
            return (ulong)__MyVariable;
        }
    }

    set
    {
        unchecked
        {
            __MyVariable = (long)value;
        }
    }
}</code>

Notez que les opérations de casting sont marquées comme non cochées pour éviter toute exception potentielle de débordement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn