结点 table 中的额外字段与 EntityFramework 中的 DataAnnotations
Extra field in junction table with DataAnnotations in EntityFramework
首先我要说的是,我在Whosebug上查过其他类似的问题,都是用Fulent API or ...来做的。
我想在 EntityFramework 中的联结 table 中添加一个额外的字段,但只有主键。
有谁知道我如何使用 DataAnnotation 做到这一点?
如果您想向联结点 table 添加额外的列,您没有其他选择可以将 table 映射为一个实体并创建两个一对多关系它与所涉及的实体之间,例如:
public class A
{
public int Id{get;set;}
//...
public virtual ICollection<AB> ABs{get;set;}
}
public class B
{
public int Id{get;set;}
//...
public virtual ICollection<AB> ABs{get;set;}
}
public class AB
{
[Key,ForeignKey("A"),Column(Order=1)]
public int AId{get;set;}
[Key,ForeignKey("B"),Column(Order=2)]
public int BId{get;set;}
public virtual A A{get;set;}
public virtual B B{get;set;}
//Add here the extra column(s)
}
首先我要说的是,我在Whosebug上查过其他类似的问题,都是用Fulent API or ...来做的。
我想在 EntityFramework 中的联结 table 中添加一个额外的字段,但只有主键。
有谁知道我如何使用 DataAnnotation 做到这一点?
如果您想向联结点 table 添加额外的列,您没有其他选择可以将 table 映射为一个实体并创建两个一对多关系它与所涉及的实体之间,例如:
public class A
{
public int Id{get;set;}
//...
public virtual ICollection<AB> ABs{get;set;}
}
public class B
{
public int Id{get;set;}
//...
public virtual ICollection<AB> ABs{get;set;}
}
public class AB
{
[Key,ForeignKey("A"),Column(Order=1)]
public int AId{get;set;}
[Key,ForeignKey("B"),Column(Order=2)]
public int BId{get;set;}
public virtual A A{get;set;}
public virtual B B{get;set;}
//Add here the extra column(s)
}