2010-12-13 24 views
3

[OK]を、私はそれをしたい私のエンティティモデルに今(成功したかどうID(カウンタ)は、ユーザーID、時間と)私は、ユーザのテーブルとすべてのログインatemptsをログに記録するテーブルを持っているEntityFrameworkカスタム協会

を言うことができますすべての成功した試みの時間と1つのすべての失敗した試みとの協会のもの2私はこれを達成することができますか?

これはモデルの外観です。

alt text

答えて

3

:)

何あなたは基本的にやろうとすると、あなたのエンティティ条件付きマッピングを持っているかのように、あなたのナビゲーションプロパティ条件を持っています。

残念ながらの概念モデルのナビゲーションプロパティは、物理モデル(データベース)の外部キーにマップする必要があります。 FKは条件付きではありません。

は、にある使用TPHで、ユーザーのログイン名はです。 UserLoginHistorySuccessUserLoginHistoryFail -

は、2つのエンティティを作成します。

そして単一UserLoginHistoryテーブルにマップするためにdicriminator(成功)を使用します。

例:

  • UserLoginHistorySuccess - UserLoginHistoryにマップ成功= 1
  • UserLoginHistoryFail - = 0

成功こうすることで、あなたは上の2つのナビゲーションプロパティを追加することができますUserLoginHistoryにマップユーザは、2つのエンティティにマッピングされます。

しかし、実際のデータベーステーブルは1つだけ必要です。

テーブルヒイラキーの詳細here

幸運を祈る!