2011-09-16 10 views
0

マイコードはどこに比較します管理者です。これは動作していません。の.NET mvc3エンティティは深いコントローラの

私は、次のエラーを取得していたときにページで、管理者以外のルック:

タイプ 「MembershipExt.Models.Client」が一定の値を作成することができません。このコンテキストでは、プリミティブ型( 'Int32、 String、およびGuid'など)のみがサポートされています。

2番目のインクルードなどを使用する必要がありますか?

答えて

1
contracts = contracts.Where(p => p.Project.Client == profile.Client); 

私はこの問題を推測していますが、上記の行にあるラムダの右側には、int32ある単純型のstringなどにする必要があるが、あなたが実際にある複合型すなわちp.Project.Client

1

これは、あなたが名前p.Project.Clientのデータ型は何

+0

を持っています右。私はアカウントのユーザー名がその人の電子メールであるようにセットアップしました。私はデバッグを見ており、そのuser.Identity.Nameが電子メールアドレスです。 – lovefaithswing

+1

多くのサイトでユーザー名として電子メールアドレスが使用されていますが、ASP.NETの組み込みメンバーシッププロバイダはその形式を区別しません(または気にしません)。 'Identity.Name'には任意の文字列を指定できます。 –

+0

ああ..私のプロジェクトでは、私は自分のログイン/ユーザーの仕組みを実装しました。なぜなら、私のdbのすべての役割など(そしてたくさんのテーブル) – MoXplod

2

で電子メールを比較しているように、間違った

db.Users.Where(d => d.Email == user.Identity.Name) 

が見え見えますか?私はそれが複雑なタイプ(それのプロパティを持っている)であると推測しています。おそらくあなたが望むものは次のようなものです...

明らかに私はオブジェクトがどのように見えるのか分かりませんが、おそらくこれが役立ちます。

関連する問題