entity framework 实体类怎么声明外键关系
比如有一个主表master,有字段id,name,.....,主键ID
对应的明细表:detail,有字段,id,No,.......,组合主键id,No
master和detail 为1对多关系
detail 通过id和主表master的id字段关联
模型中该怎么写才能反映这种主外键的关系
master的model如下
public class master
{
[Key]
[Required()]
public string id { get; set; }
public string name{ get; set; }
.............
}
public class detail
{
[Key]
[Column(Order = 0)]
public string id{ get; set; }
[Key]
[Column(Order = 1)]
[Required()]
public int No{ get; set; }
.........................
}
//定义对应的数据库表的名称
modelBuilder.Entity<Message>().ToTable("Xxx_Message");
//定义主键
modelBuilder.Entity<Message>().HasKey(x => x.Id);
//定义对照关系
modelBuilder.Entity<Message>()
.HasOptional(x => x.From)//可空的一
.WithMany()//对多
.Map(x => x.MapKey("FromId"))//对应自己存储的FromId隐藏外键
.WillCascadeOnDelete(false);//这行你暂时可以忽略 意为不进行级联删除