尝试运行“Add-Migration”命令时,我收到“Sequence包含多个匹配元素”错误消息。我相信这个问题源于我有多个类,这些类有多个对共享类的引用。
class User {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserId {get; set;}
public string Name {get; set;}
// other stuff removed for display purposes
[InverseProperty("CreateUser")]
public virtual ICollection<Foo> FooCreateUser { get; set; }
[InverseProperty("ModifyUser")]
public virtual ICollection<Foo> FooModifyUser { get; set; }
[InverseProperty("CreateUser")]
public virtual ICollection<Bar> BarCreateUser { get; set; }
[InverseProperty("ModifyUser")]
public virtual ICollection<Bar> BarModifyUser { get; set; }
}
class Foo {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid FooId {get; set;}
[InverseProperty("FooCreateUser")]
public User CreateUser {get; set;}
[InverseProperty("FooModifyUser")]
public User ModifyUser {get; set;}
}
class Bar {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid BarId {get; set;}
[InverseProperty("BarCreateUser")]
public User CreateUser {get; set;}
[InverseProperty("BarModifyUser")]
public User ModifyUser {get; set;}
}
上述代码有什么问题?
我是否必须将[Bar]和[Foo]数据库表中的字段名称更改为唯一?
即将[Foo] [CreateUser]更改为[Foo] [Foo_CreateUser]?
我需要在多个数据库表上有一个“CreateUser”和“ModifyUser”字段,从数据库设计角度来看,没有任何意义可以使所有这些字段都具有唯一名称。
我如何告诉CodeFirst这样做?