Entity Framework での符号なし整数と Long のマッピング
Entity Framework のコードファーストのアプローチにより、プロパティをデータベース列にシームレスにマッピングできます。ただし、MySQL の EF プロバイダーは ulong データ型をサポートしていないため、開発者はそのようなプロパティを MySQL の unsigned bigint にどのようにマッピングするかという疑問を抱えています。
解決策:
伝統的に, Entity Framework では、署名されていないデータ型がサポートされていません。ただし、uint 列の場合、開発者は、long などのより広範囲の符号付きデータ型で値を格納できます。しかし、ulong 列の場合、オーバーフローを防ぐことができる EF でサポートされる署名付きデータ型はありませんでした。
これに対処するために、開発者は賢明なソリューションを活用できます。つまり、データをデータベース内の長い列に格納し、それを次の形式にキャストします。施設にアクセスするときの長さ。これは、long と ulong の両方が 8 バイトのデータ型であるため機能します。
<code class="csharp">// As a database column only. Do not modify directly. public long __MyVariable { get; set; } // Access and modify this variable instead. [NotMapped] public ulong MyVariable { get { unchecked { return (ulong)__MyVariable; } } set { unchecked { __MyVariable = (long)value; } } }</code>
注: オーバーフロー例外を防ぐために、チェックされていないキャストが採用されています。
このソリューションにより、開発者は次のことが可能になります。 Entity Framework で ulong 変数を効果的に使用し、符号なしデータ型のネイティブ サポートがない場合の回避策を提供します。
以上がEntity Framework で「ulong」プロパティを MySQL の Unsigned Bigint にマッピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。