2013-09-27 4 views
0

Keyword_Id = 1에서 Keyword_Id = 2로 모든 레코드를 업데이트하려면 어떻게해야합니까?관련 엔티티 3 개가있는 엔티티 ID 업데이트 ID가

public class KeywordAddressCategory 
{ 
    [Key] 
    [Column("Keyword_Id", Order = 0)] 
    public int Keyword_Id { get; set; } 

    [Key] 
    [Column("Address_Id", Order = 1)] 
    public int Address_Id { get; set; } 

    [Key] 
    [Column("Category_Id", Order = 2)] 
    public int Category_Id { get; set; } 
} 

나는 엔터티의 키를 업데이트 할 수 없다는 예외가 있습니다.

감사

+0

가능한 중복 (http://stackoverflow.com/questions/1367751/update-primary-key-value-using-entity-framework) – CodeCaster

답변

0

그 세 가지 속성이 복합 기본 키의 일부이기 때문에 이것은 아마도이며, 엔티티 프레임 워크는 우아하게 지적과 같이 당신이 기본 키 값을 변경할 수 없습니다. 이 모든 옵션에있는 경우

, 나는 복합 기본 키하지만이 클래스에 대한 별도의 기본 키를 사용하지 고려할 것입니다. 외래 키를 사용하면 훨씬 간단 해집니다.

그래서,이 같은 :이 시스템 정체성의 제약으로

[Key] 
public int KeywordAddressCategoryId { get; set; } 

public int Keyword_Id { get; set; } 

public int Address_Id { get; set; } 

public int Category_Id { get; set; } 

외국 키, 경로 값으로 또는 양식에 숨겨진 필드로 ID 값을 주위에 전달 ... 모두가 훨씬 쉬워집니다. 그리고 당신의 질문에 : 외래 키 값을 쉽게 변경할 수 있기 때문에 Keyword_Id 값을 쉽게 변경할 수 있습니다.

나는 당신이 실제로 값을 변경하는 방법을 이야기하지 않았기 때문에이 정말 귀하의 질문에 대답하지 않습니다 알지만, 어쩌면 당신이 당신의 데이터베이스 구조를 재고 할 수 있도록 어쨌든이 답변을 게시하고 싶었다.

편집 : 만약 당신이 정말 할 수 없습니다, 당신은 당신이 원하는 것을 달성 할 수있는 방법에 대한이 질문을 참조하거나 DB의 구조를 변경하고자하지 : Update part of primary key Entity Framework 4.0

[엔티티 프레임 워크를 사용하여 기본 키 값을 업데이트의
+0

내가 구조의 변화의 영향을 확인해야합니다, 당신의 도움을 주셔서 감사합니다 데이터 베이스. 다시 한 번 감사드립니다. – Patrick

관련 문제