2015-11-25 5 views
0

У меня есть таблицы FundAllocation & Распределение.База данных Entity Framework Первая таблица поиска вставки строк

FundAllocation 
    - FundAllocationId (Primary Key, Identity) 
    - AllocationRefId 

Allocation 
    - AllocationId (Primary Key, Identity) 
    - Allocation 

Соответствующие DbSets для того же являются:

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 может быть выделение из таблицы поиска или вообще отсутствует. Однако, когда я добавляю новый объект FundAllocation в DbSet (где FundAllocation.AllocationRefIf равен существующему AllocationId), он добавляет новую таблицу распределения в таблицу распределения. Как я могу предотвратить это новое добавление распределения в таблицу базы данных?

ответ

0

Определенно, я не думаю, что это правильный подход, но ниже строки кода работает для меня:

dbContext.Entry<Allocation>(newFundAllocation.Allocation).State = EntityState.Unchanged; 
Смежные вопросы