0

MVC5プロジェクトでASP.NET ID 2.0を使用していて、AspNetUsersテーブルに関連するテーブルがあるため、AspNetUsersのidフィールドのデータ型を文字列(GUID)からintに変更する必要がありました。私はHow to change type of id in Microsoft.AspNet.Identity.EntityFramework.IdentityUserのように多くのページを見ていますが、それは簡単に適用できないようです。一方、AspNetUsersエンティティのIDフィールドのデータ型を変更すると、他のIDタイプ(AspNetUserRoles、ApplicationGroupRolesなど)間にpk/fk関係があるため、十分ではありません。その場合は、 IDテーブルの元のデータ型を変更し、テーブルのIDタイプをintからstringに変更しますか?または、ASP.NET Identity 2.0で簡単にすべてのIDテーブルのデータ型を変更できますか?これがバージョン3.0で簡単なら、私はそれを使うこともできます。IDの型を文字列(GUID)からintに変更した後に起こりうる問題はありますか?

+0

をintに文字列から変更することがうまく管理文字列のIDと他のすべてのテーブルint id? –

+0

@LucianBumb PK/FKの関係が良いのかどうか分かりません。だから、私は最高のアイデアは、カスタムテーブルのintを使用して、asp.netアイデンティティテーブルのint型の文字列をint型に変換することだと思う。なにか提案を? –

+0

仲間では、私はいくつかのエンティティで 'string' Idを持つことができないと確信していたので、私はあなたが今しようとしていることをするために多くの努力をしています。問題である。結果は問題ありませんでした! 'userId'が' string'であることに気をつけるだけです。 –

答えて

0

私は数ヶ月前に私が同じことをしようとしていたので、私のコメントを延長したいと思います。私の場合は

が、私は関係string作成できるかどうかわかりませんでした - 最初のデータベースから来、>intを、そしてPRODUCTID(int型)とのuserId(INT)との関係を作成するために使用される、私はintはすべてのID持っていると思いました以上。

メイトuserIdstringのようになり、このような関係を作成できます。

public class Customer 
{ 
    public int Id {get;set;} 
    public string Name {get;set;} 

    public string SalesManId {get;set;} 
    [ForeignKey("SalesManId ")] 
    public virtual ApplicationUser SalesMan {get;set;} 
} 

ここにはCustomerエンティティがあり、ナビゲーションプロパティが宣言されています。 したがって、SalesManIdのタイプはstringです。このようにして、すべての関係をApplicationUserクラスで作成することができます。

あなたはまだint型に変更したい場合は、ここで私は数ヶ月前に続くユーチューブチュートリアル、と私はあなたが持つユーザーを聞かせていないのはなぜ

YouTube tutorial-How to change UserId from string to int

+0

ご返信ありがとうございます。実際に私はpk/fk関係の作成時に多くの問題に遭遇しました。私は、アイデンティティテーブルのデータ型を文字列からintに変更することで問題を解決すればよいと思います。 >>> –

+0

私はhttp://www.asp.net/identity/overview/extensibility/change-primary-key-for-users-in-aspnet-identityの元の投稿を見ていますが、もし私が持っているかどうかはわかりません「キー・タイプを使用するカスタマイズされたIdentityクラスを追加する」で説明したIdentityModelsにカスタム・クラスを追加します。私は今プロジェクトを作成しているので、現在作成されているテーブルはありません。つまり、カスタムクラスを追加するのではなく、現在のクラスを変更することができますか? –

+0

@binary回答には、チュートリアルへのリンクを挿入します。このチュートリアルでは、手順を段階的に教えています。 –

関連する問題