2014-07-25 1 views
0

단지 정보 테이블의 asp.net MVC있는 테이블에 값을 입력 방지하는 방법 :내가 모델 클라이언트가

public class Client 
{ 
    public int ClientID 
    { 
     get; 
     set; 
    } 
    [Required] 
    public string compte 
    { 
     get; 
     set; 
    } 
public int Restr_typeID 
    { 
     get; 
     set; 
    } 
public virtual Restr_type1 Restr_type 
    { 
     get; 
     set; 
    } 

을 그리고 Restr_type도 모델 :

public int Restr_type1ID 
    { 
     get; 
     set; 
    } 
    public string restr1_name 
    { 
     get; 
     set; 
    } 
    public int ActifID 
    { 
     get; 
     set; 
    } 
public virtual Actif Actifs 
    { 
     get; 
     set; 
    } 

내 문제가 Clients 테이블에 클라이언트의 인스턴스를 추가하고 Restr_types 테이블과 Actifs 테이블에 행을 추가합니다. 그러나이 두 테이블은 정보 테이블 일 뿐이므로 이들을 정적으로 유지하기를 원합니다. 내가 원하는 것은 고객만을 확보하는 것이다.

제발 도와 주실 수 있습니까?

도움 주셔서 감사합니다.

답변

0

가상 속성으로 연결되지 않은 개체가있는 경우 EF가 작동하는 방식입니다. 당신이 Client의 새로운 인스턴스를 생성하고 EF에서 가져온 객체가 아닌 참조를 사용하여 Restr_type 속성을 채우는

기본적으로 있다면, 그것은 새로운 값이 너무에 추가합니다 필요로 Restr_type 속성을 처리합니다 DB를 추가하고 참조를 추가하십시오.

EF를 사용하여 Restr_type에 대한 데이터베이스를 쿼리하고 거기에서 반환 된 참조를 사용하고 싶습니다. 그렇지 않으면 Restr_typeID 소품을 채우고 Add()을 컨텍스트에서 호출 할 때 Restr_type 소품을 null로 그대로 둡니다.

나는 그것이 의미가 있기를 바랍니다. http://msdn.microsoft.com/en-us/data/jj592676.aspx 이것은 조금 더 나은 EF 컨텍스트를 이해하는 데 도움이 될 수 있습니다

+0

고마워요.하지만 잘 이해가 안 돼요, Restr_type의 가상 속성을 버려야합니까? – nabs

+0

아니요. 엔티티 프레임 워크와 함께 .Add를 호출 할 때이 문제가 발생한다고 가정합니다. 즉, 추가하려는 객체가 Restr_type을 null로 설정해야 EF에서 새 값으로 간주하지 못하도록하고 새 행을 표. 외래 키를 설정하려면 Restr_typeID 속성을 설정하고 Restr_type을 null로 남겨 두어야합니다. Restr_type은 엔티티에 남아 있어야하지만 선택을 수행 할 때마다 채워집니다. –

+0

하지만 어떻게 null로 설정할 수 있으며 양식에 사용합니까? 모델의 공용 가상 Restr_type restr_type은 null이어야합니다. 유감스럽게도 나에게 명확하지 않다. 초보자이다. 조금 더 설명해 주시겠습니까? – nabs

관련 문제