我首先使用实体框架代码,但我遇到了问题,因为 EFEvent
使用两个引用键创建表,一个用于 class ObjectOne
,另一个用于 class ObjectTwo
。
是否可以将 Id 的值保留在一列中Event.ObjectId
并保留属性中的关系类型Event.Type
?
我可以进行以下映射(其中我只有一列用于 FK)。是否可以不在数据库中创建 FK,因为现在我必须添加ObjectOne
表和ObjectTwo
表中存在的值,这对我来说不是解决方案):
modelBuilder.Entity<ObjectOne>()
.HasMany(c => c.Events).WithOptional().HasForeignKey(x => x.ObjectId);
modelBuilder.Entity<ObjectTwo>()
.HasMany(c => c.Events).WithOptional().HasForeignKey(x => x.ObjectId);
示例类:
public class ObjectOne
{
public int ObjectOneId { get; set; }
public ICollection<Event> Events { get; set; }
}
public class ObjectTwo
{
public int ObjectTwoId { get; set; }
public ICollection<Event> Events { get; set; }
}
public class Event
{
public int EventId { get; set; }
public int ObjectId { get; set; }
public string Type { get; set; }
}
public class AddEvent : Event
{
}
public class Updated : Event
{
}
提前致谢