我与其他一些字段有很多关系。但是因为有很多关系可以应用于其他关系的照片,我想分开它,所以我可以通过改变一对多的关系来改变它。这是模型
public class Segment
{
public int SegmentId { get; set; }
public int ConnectionPointIdEnd { get; set; }
public string ConnectionName { get; set; }
public string ConnectionInformation { get; set; }
public string Image { get; set; }
public string Direction { get; set; }
public ICollection<ConnectionPointRoute> ConnectionPointRoutes { get; set; }
}
public class ConnectionPointRoute
{
public int ConnectionPointId { get; set; }
public int RouteId { get; set; }
public int SegmentId { get; set; }
public int Position { get; set; }
public ConnectionPoint ConnectionPoint { get; set; }
public Route Route { get; set; }
public Segment Segment { get; set; }
}
模型构建器看起来像这样:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ConnectionPointRoute>()
.HasKey(c => new { c.ConnectionPointId, c.RouteId, c.SegmentId });
modelBuilder.Entity<ConnectionPoint>()
.HasMany(c => c.ConnectionPointRoutes)
.WithRequired(x => x.ConnectionPoint)
.HasForeignKey(c => c.ConnectionPointId);
modelBuilder.Entity<Route>()
.HasMany(c => c.ConnectionPointRoutes)
.WithRequired(x => x.Route)
.HasForeignKey(c => c.RouteId);
modelBuilder.Entity<Segment>()
.HasMany(c => c.ConnectionPointRoutes)
.WithRequired(x => x.Segment)
.HasForeignKey(c => c.SegmentId);
}
这一切都适用于获取项目,但由于某种原因,它不允许我发布新的路由,例如,它让我得到错误:
“违反了多重性约束。角色 'Segment_ConnectionPointRoutes_Source'的关系 'InBuildingNavigator.Data.Models.Segment_ConnectionPointRoutes'有 多重性1或0..1。“
有什么想法吗?
答案 0 :(得分:0)
修正了这个问题!我的Post代码中有一个错误,我添加了完整的子对象,这在我的情况下并没有多大意义。
问我是否需要更详细的解决方法!
答案 1 :(得分:0)
还有两件事: