CTP5,CF,最佳实践:“无法确定从属操作的有效排序。” [英] CTP5, CF, Best Practices: "Unable to determine a valid ordering for dependent operations."

查看:167
本文介绍了CTP5,CF,最佳实践:“无法确定从属操作的有效排序。”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到以下错误:

无法确定相关操作的有效排序。由于外键约束,模型要求或商店生成的值,可能存在依赖关系。

Unable to determine a valid ordering for dependent operations. Dependencies may exist due to foreign key constraints, model requirements, or store-generated values.

粗略地说,这是造成它的原因:

Roughly, here's what's causing it:


public class Group
{
  public virtual Collection<Layout> Layouts { get; set; }
  public virtual Layout DefaultLayout { get; set; }
}

public class Layout
{
  public virtual Group { get; set; }
}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
  modelBuilder.Entity<Group>().HasMany(g => g.Layouts).WithOptional(l => l.Group);
  modelBuilder.Entity<Group>().HasOptional(g => g.DefaultLayout);
}




推荐答案

< p style ="margin:0in 0in 0pt"> Tlmii,

 

我怀疑问题是你只是指定其中一个关系模型:

  ;

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
modelBuilder.Entity< Group >()。HasOptional(g => g.DefaultLayout);

            modelBuilder.Entity<Group>().HasOptional(g => g.DefaultLayout);

 

在这种情况下,因为你没有指定多重性这种关系的另一端按惯例成为一个多选项。 
我在这里猜测,但我怀疑你希望这是某种形式的一对一关系。 
如果是这样,那么你可以流利地调用这样的东西:

In this case because you don’t specify the multiplicity of the other end of the relationship it becomes an option-to-many by convention.  I’m making a guess here but I suspect that you want this to be some form of one-to-one relationship.  If so, then you can the fluent call to something like this:

 

           
modelBuilder.Entity< Group >()。HasOptional(g => g.DefaultLayout).WithRequired();

            modelBuilder.Entity<Group>().HasOptional(g => g.DefaultLayout).WithRequired();

 

这将使PK与PK之间的关系分组和布局,使布局的PK是组的PK的FK。 
你也可以这样做:

 

           
modelBuilder.Entity< Group >()。HasOptional(g => g.DefaultLayout).WithOptionalPrincipal();

            modelBuilder.Entity<Group>().HasOptional(g => g.DefaultLayout).WithOptionalPrincipal();

 

在这种情况下将创建一个FK(布局中没有映射。

 

我可以在这些更改之后使更新生效。

 

谢谢,

Arthur


这篇关于CTP5,CF,最佳实践:“无法确定从属操作的有效排序。”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆