我有一个现有的软件,它有一个单独的类的树表。
users
,users_a
和users_b
使用相同的主键user_id
。
如何使用Entity Framework和C# - Code First来模拟这种类型的表,所以我有一个类User
,并且这三个表中的所有属性都分配给了这个类?
table: users
users_id int
name nvarchar
....
table: users_a
users_id int
race_id int
......
table: users_b
users_id int
genders_id int
...
我需要一个用户类
User
public int Id { get;set;}
public int GenderId {get;set;}
public virtual Gender Gender {get;set;}
public int RaceId {get;set;}
public virtual Race Race {get;set;}
答案 0 :(得分:0)
可以使用每个层次结构表来实现此结构。有关详细信息,请参阅Asp.net example
答案 1 :(得分:0)
通过覆盖DbContext类的“OnModelCreating”方法来拆分该类。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.Map(map =>
{
map.Properties(p => new
{
p.UserId,
p.Name
});
map.ToTable("users");
})
.Map(map =>
{
map.Properties(p => new
{
p.UserId,
p.GenderId
});
map.ToTable("users_b");
})
.Map(map =>
{
map.Properties(p => new
{
p.UserId,
p.RaceId
});
map.ToTable("users_a");
});
}