ホームページ > データベース > mysql チュートリアル > Entity Framework で符号なし Long (ulong) 型をどのようにマップしますか?

Entity Framework で符号なし Long (ulong) 型をどのようにマップしますか?

Linda Hamilton
リリース: 2024-11-02 18:35:30
オリジナル
260 人が閲覧しました

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

Entity Framework での符号なし整数型と Long 型のマッピング

Entity Framework の Long データ型に対するすぐに使用できるマッピングは、次の場合に十分です。符号付きのlong値を表します。ただし、unsigned long (ulong) 型を扱う場合、状況は少し複雑になります。 MySQL の EF プロバイダーは、デフォルトで ulong データ型をスキップします。

ulong の解決策

Entity Framework の古いバージョンでは、署名されていないデータ型はサポートされていませんでした。 ulong 列のこの制限を回避するには、サポートされている long データ型で値を保存し、必要に応じてそれを ulong にキャストします。

この解決策を実装するには:

  • データベースにマップされ、long 型の内部プロパティ __MyVariable を作成します。
  • 符号なしの Long 値を表す、[NotMapped] 属性を持つパブリック プロパティ MyVariable を作成します。
  • 次のゲッターとセッターを実装します。 MyVariable を使用して、必要なキャストを実行します。
<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>
ログイン後にコピー

潜在的なオーバーフロー例外を防ぐために、キャスト操作は未チェックとしてマークされていることに注意してください。

以上がEntity Framework で符号なし Long (ulong) 型をどのようにマップしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート