EntityFramework自定义关联

时间:2010-12-13 23:29:15

标签: .net entity-framework

好吧,假设我有一个用户表,然后是一个记录所有登录尝试的表(Id(计数器),userId,时间和成功与否)

现在在我的实体模型中,我希望它是2个协会的一个,所有成功尝试的时间和一个所有不成功的尝试我怎么能实现这个?

这就是模型现在的样子!

alt text

1 个答案:

答案 0 :(得分:3)

好问题。 :)

您基本上要做的是在导航属性上有一个条件,就像您在上有条件映射一样>实体

不幸的是,概念模型上的导航属性必须映射到物理模型(数据库)上的外键。而且FK不能有条件。

我会做什么,是在 UserLoginHistory 上使用TPH。

创建两个实体 - UserLoginHistorySuccess UserLoginHistoryFail

使用判别器(成功)映射到单个 UserLoginHistory 表。

E.g:

  • UserLoginHistorySuccess - 当Success = 1
  • 时映射到UserLoginHistory
  • UserLoginHistoryFail - 当Success = 0
  • 时映射到UserLoginHistory

这样,您可以在用户上添加两个导航属性,这两个属性映射到两个实体。

但是你仍然只需要1个实际的数据库表。

更多关于Table Per Hierachy here

祝你好运!