我首先基于一个预先存在的数据库运行代码,但遇到映射错误。 我尝试放置外键注释,但没有成功。
这里是类映射:
[Table("tablle_1")]
public partial class Table1
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Table1()
{
Table2 = new HashSet<Table2>();
}
[Key]
[Column(Order = 0)]
public long usu_id_apr { get; set; }
[Other non-important columns]
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long usu_numweb { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Table2> Table2 { get; set; }
}
[Table("Table2")]
public partial class usu_twebnotifi
{
[Key]
[Column(Order = 0)]
public long usu_id_not { get; set; }
[Other non-important columns]
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long usu_numweb { get; set; }
[StringLength(999)]
public string usu_obsnot { get; set; }
public long? usu_id_apr { get; set; }
public virtual Table1 Table1 { get; set; }
}
这是OnModelCreation
方法
modelBuilder.Entity<Table1>()
.HasMany(e => e.Table2)
.WithOptional(e => e.Table1)
.HasForeignKey(e => new { e.usu_id_apr, e.usu_numweb });
运行时,出现此错误:
Data.Table1_Table2 ::多重性与关系“ Table1_Table2”中的角色“ my_foreign_key”中的引用约束冲突。由于“从属角色”中的所有属性都是不可为空的,因此“主体角色”的多重性必须为“ 1”。
Table1_Table2_Source_Table1_Table2_Target ::关系约束中的从属角色和主体角色中的属性数必须相同。
你能帮我吗?
谢谢。