繁体   English   中英

实体框架数据库优先查找表插入行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM