2013-04-20 2 views
1

저는 modal 및 db 컨텍스트 클래스를 기반으로 데이터베이스를 작성하는 코드 첫 번째 방법을 사용하고 있습니다. 문제는 하나의 모델과 다음 모델 사이의 관계를 만들고 코드를 실행하면 데이터베이스가 외래 키를 생성해야한다는 것입니다.외래 키가없는 엔티티에서 관계 생성

어떻게 관계를 원했을 까, 외부 키 외부 키. 이것은 엔티티 프레임 워크와 코드 첫 번째 접근 방식과 관련이 있습니까? 이 테이블 위치 테이블에 생성 된 외부 키를해야합니다 볼 수 있듯이

namespace LocApp.Models 
{ 
    public class LocationAssignment 
    { 
     public int id { get; set; } 
     public int locationID { get; set; } 
     public int serviceID { get; set; } 
     public int productID { get; set; } 
     public int personID { get; set; } 

     public virtual Location Location { get; set; } 
     public virtual Service Service { get; set; } 
     public virtual Product product { get; set; } 
     public virtual Person person { get; set; } 
    } 
} 

: 예를 들어

:

namespace LocApp.Models 
{ 
    public class Location 
    { 
     public int id { get; set; } 
     [Required] 
     public string name { get; set; } 
     [Required] 
     public string address { get; set; } 
     [Required] 
     public string city { get; set; } 
     [Required] 
     public string country { get; set; } 
     [Required] 
     public string province { get; set; } 
     [Required] 
     public string phone { get; set; } 
     public string fax { get; set; } 
     public bool active { get; set; } 

     public virtual ICollection<LocationAssignment> LocationAssignment { get; set; } 
    } 
} 

은과의 관계를 가지고 있습니다. 이 관계를 유지하는 방법 WITH 외래 키 생성?

+0

외래 키를 원하지 않는 이유는 무엇입니까? –

+0

분명히 회사가 데이터베이스를 관리하는 방법을 이해하지 못하고 제품이 전달 된 후 모든 외래 키 제약 조건을 삭제하게되어 응용 프로그램이 손상되거나 중단 될 수 있습니다. 그래서 외래 키를 생성하지 않는 첫 번째 접근법을 사용하여 테이블을 만드는 방법을 실험하고 있습니다. 그러나 관계를 유지 – TheWebs

+0

내가 처음 들어 본 코드의 가장 이상한 사용 :)하지만 재미있는 - 그래서 당신은 실제로 데이터베이스에서 'FK-s'를 생성 싶지 않아요? (POCO의 속성으로 '표시'뿐만 아니라). – NSGaga

답변

0

사용자 트리거 On 삽입 및 업데이트 상대 삭제 및 참조 테이블 삭제 !!! 하지만 귀엽지 않아서 응용 프로그램에서 모든 것을 제어해야합니다.

+0

방법이없는 경우, db 데이터 클래스를 사용하여 테이블을 더미 데이터로 채우는 데이터베이스 초기화 클래스를 만들 때 db 컨텍스트 클래스를 사용하여 외래 키를 스트레이트 팅한다고 말할 수 있습니까? – TheWebs

관련 문제