2016-08-27 12 views
0

私のprevious questionを続けると、受け入れられた答えは完全に機能します。
しかし、私は言う、私のデータベースにいくつかの役割を持つようにしたい:静的な値へのマッピングの役割

テーブル:役割

Id | Role 
--------------- 
1 | AccountOwner 
2 | AccountAdmin 
3 | AccountUser 

問題の受け入れ答えは、役割にするたびに、ユーザに新しい行を作成しますアカウントに登録されています。アイデンティティ・システムにデータベース内の既存のロールを使用するよう要求する方法はありますか?可能であれば、Roleクラスを完全に削除してEnumに置き換えたいと思います。

+0

これを列挙型に置き換える場合は、データベース内のロールテーブルと同じように、ロールエンティティは不要になります。 RoleプロパティをRole(enum)型にするだけで、dbにint型として保持されます。 しかし、将来的に他の役割を追加するためにコードを更新する必要があるという設計上の欠陥が発生します。 –

+0

@stefchriすべての役割が既に考慮されているので、動作する可能性があります。 –

答えて

0

これを列挙型に置き換える場合は、データベース内のロールテーブルと同じように、ロールエンティティは不要になります。 RoleプロパティをRole(enum)型にするだけで、dbにint型として保持されます。しかし、将来のために他の役割を追加するためにコードを更新する必要があるという設計上の欠陥につながります。

3つの役割しか持っておらず、毎回不必要に追加しないことについて: db(var role = Context.Roles.Where(...).FirstOrDefault())から正しい役割を取得し、これをuseraccountのroleプロパティに入れてください。このようにして、すべてのuacが正しい役割のインスタンスを指していることを確認します。

+0

ありがとう、これは完全に機能しました。しかし、私は、Identityシステムが "Role"クラスを必要とするので、Roleクラスを完全に削除する方法を知りたいです –

+0

完全に削除することはできません。質問と回答を参照してください。http://stackoverflow.com/questions/38612771/is-it-possible-to-save-a-role-with-enum-parameter-using-identity –

+0

私はロールクラスを空のままにすることに決めました。すべてのメソッドに対してRoleStoreを「新しいNotImplementedExceptionをスローする」ようにしてください。 –

関連する問題