我有会员模块类似下面(我简化IT)类一表映射在CodeFirst在EF 5
public class User
{
public int Id { get; set;}
public int UserDetailId {get; set;}
public virtual UserDetail UserDetail {get; set;}
}
public class UserDetail
{
public int Id {get; set;}
public int UserId {get; set;}
public string UserName {get; set;}
public string PassWord {get; set;}
public virtual User User {get; set;}
}
然后我采用这种结构被很多项目,但与像一些改进如下
public class CustomUser : User
{
public string FirstName {get; set;}
public string LastName {get; set;}
public string EMail {get; set;}
}
CustomUser和UserDetail之间的关系应该是一对一,Discrimininator字段应该被丢弃。我正在使用流利的API。但我无法成功地做到这一点。
我不想要为每个用户类型创建一个表。我只想要一个,这个例子就是CustomUser。为什么我需要为User和CustomUser指定一个映射? –
@RyuKaplan目前还不清楚你想达到什么目的。您正在询问*每个表格映射的类型*,但现在您说您需要*每个层次结构映射的类型*。你能否描述你想要达到的目标,以及你现在有什么确切的问题? –
对不起,感到困惑。让我再解释一遍。我不想拥有多个用户表。一个应用程序可以直接使用User类,但另一个应用程序可以使用从User类继承的CustomUser类。和UserDetail类总是不变,并没有改变。现在我有一个CustomUser,我希望它与UserDetail是一对一的关系。但是他们的外键属性无法像你在图片上看到的那样成功设置。另外我想丢弃鉴别器列,因为我将始终有一个用户表。 –