ASP.NET 3 IDを見ると、string
が使用され、一意のプライマリキーにはGuid
は使用されません。私Entity Framework
code first
ユーザーのApplicationUser
クラスでEF-CoreでID /プライマリキーにStringの代わりにGuidを使用する方法
は、私は私のEntity Frameworkのは、テーブルaspnetusers
ではなくuniqueidentifier
nvarchar(450)
のキータイプを使用して作成ばかりの移行を作成するとき、その結果Identityクラス
public class ApplicationUser : IdentityUser
{
}
に継承します
これをASP.NET Identity 2
ENtity Framework
プロジェクトと比較すると、IDフィールドがuniqueidentifier
で、nvarchar(450)
私はASP.NET Identity 3
持つ一意のキーの代わりにstring
のGuid
とuniqueidentifier
の代わりnvarchar(450)
に使用する方法はありnvarchar(450)
よりも良いだろう、データベースのパフォーマンスの主キーとuniqueidentifier
の外部キーのために想像するでしょうか?
previous question StringをGuidに変換する方法がありますが、データベーステーブルIdをGuidにしたいとします。
長さがnvarchar(128)の場合は、前のBETAと同じように別のものが見つかりました。理由はすべてのデータベースがGuidをサポートしているわけではなく、柔軟性のために変更されているからです。
identity 3
全体を書き換えることなく、文字列からGuidに簡単に変更する必要がありますか?
nvarchar(450)
は実際には過剰ですが、SQL Serverデータベースの制約を作成する際には、あらゆる種類の警告が表示されます。データベース管理者は、これらの警告を確実に気に入らないでしょう。
コマンドEntityFramework 7/EntiryFramework Core 1.0のバグ.rc1-finalまで、外来キーでジェネリックを使用するときにマイグレーションを中断します。組み込み型(Guidのような)では閉じられません。これはrc2-nightliesでかなりの間修正されていますが、まだリリースされていません。 https://github.com/aspnet/EntityFramework/issues/3545 – Tseng