[英]Entity Framework Database First Lookup table inserting rows
我必须表格FundAllocation&Allocation。
FundAllocation
- FundAllocationId (Primary Key, Identity)
- AllocationRefId
Allocation
- AllocationId (Primary Key, Identity)
- Allocation
相同的对应DbSet为:
public DbSet<FundAllocation> FundAllocation { get; set; }
public DbSet<Allocation> Allocation { get; set; }
以下是实体:
public class FundAllocation
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int FundAllocationId { get; set; }
public int AllocationRefId { get; set; }
[ForeignKey("AllocationRefId")]
public virtual Allocation Allocation { get; set; }
}
public class Allocation
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int AllocationId { get; set; }
[Column("Allocation")]
public string AllocationTitle { get; set; }
}
分配表是一个查找表。 FundAllocation可以在查找表中进行分配,也可以完全不进行分配。 但是,当我向DbSet添加新的FundAllocation(其中FundAllocation.AllocationRefIf等于现有的AllocationId)时,它将向Allocation表添加新的Allocation。 如何防止将分配添加到数据库表中?
绝对我认为这不是正确的方法,但是下面的代码对我有用:
dbContext.Entry<Allocation>(newFundAllocation.Allocation).State = EntityState.Unchanged;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.