我有以下问题:我需要创建实体,这些实体将同时与实体框架中的一对多和一对一关系相关联。
我想要创建的模型如下:我有MapObject实体和FloorMap实体。 FloorMap上有许多MapObject,但FloorMap是另一个MapObject的一部分。我该如何实现它?
我想要做这样的somtheing:
Paymenttype
不幸的是,这并不是我想要的方式。有没有办法在EF中实现这种关系?
答案 0 :(得分:0)
我不确定我明白你在问什么,但听起来你想要一张地图有一个父母和多个孩子。我不太清楚你为什么要把MapObject与这个混合使用但是肯定。
public class FloorMap
{
public int FloorMapID { get; set; }
public int FloorNumber { get; set; }
public string FloorImage { get; set; }
public string FloorMapDescription { get; set; }
public virtual List<MapObject> MapObjects { get; set; }
public virtual MapObject MapObject { get; set; }
}
public partial class MapObject
{
[Key,ForeignKey ("FloorMap")]
public int FloorMapRefID { get; set; }
public virtual FloorMap FloorMap { get; set; }
public int OtherFloorMapRefID {get;set;}
public virtual FloorMap OtherFloorMap { get; set; }
}
modelBuilder.Entity<FloorMap>().HasMany(e => e.MapObjects).WithRequired(e=>e.OtherFloorMap).HasForeignKey(e=>e.OtherFloorMapRefID);
modelBuilder.Entity<FloorMap>().HasOptional(e => e.MapObject).WithRequired(e=>e.FloorMap);
这看起来像你想要做的吗?