2009-09-03 3 views
0

기본 형식으로 만들려면 데이터베이스 테이블에서 varchars에 대해 null을 사용할 수 없으며 공백이 있어야합니다. 내 모델은 null을 허용하지 않으므로 양식 필드를 비워두면 레코드가 삽입되지 않습니다. 빈 양식 필드가 나타나면 대신 기본값 인 공백을 사용하고 싶습니다. 나는 시도 예를 들어, 어떤 행운 않고 다음했습니다에 불쾌한 일반 어느LINQ 모델링의 기본값

if(myModel.WMDCompany == null) myModel.WMDCompany = " "; 

:

[Column] 
[DisplayName("WMD Company")] 
[DefaultValue(" ")] 
public string WMDCompany { get; set; } 

그래서 대신 내 컨트롤러 액션에서 나는 다음과 같은 검사를 할 필요가 나를. [DefaultValue(" ")]을 사용할 수있는 방법이 있습니까? NULL에 대한 자리 표시 자 나에게 매우 모호한 방법처럼 보인다 공백을 삽입

건배

답변

1

. LINQ to SQL은 유감스럽게도 DB 기본값을 지원하지 않습니다. 이 속성은 기억한다면 API 확장에 사용하기위한 것이지만 사용법을 알지 못합니다.

이 문제를 해결하기위한 두 가지 방법을 사용할 수 있습니다.

먼저 속성을 적절히 제어하고 null로 설정하여 데이터 영역을 업데이트하십시오. 부분 클래스를 사용하여 데이터 클래스를 확장하고 OnCreated() 부분 메서드를 구현하고이 값을 String.Empty로 설정합니다.

partial void OnCreated() 
{ 
    MyProp = String.Empty; 
} 

둘째, 당신은 널 (null)을 허용하기 위해 DBML 표현을 변경할 수 있지만 데이터베이스에 빈 문자열을 null을 변환하는 트리거를 사용합니다. 나는 그것이 나에게 있다면, 나는 널 (null)을 허용하는 것, 그 문제에 선택의 여지가 아드리안

+0

나는 이것의 모양을 좋아한다, 나는 내일 그것에 강타를 가질 것이다. – Kezzer

0

. NULL 값을 허용하도록 테이블 디자인을 변경하는 것이 어떻습니까?

private string wmdCompany; 

public string WMDCompany 
{ 
    get 
    { 
     if (this.wmdCompany == null) 
     { 
      return string.Empty; 
     } 
     return this.wmdCompany; 
    } 
    set 
    { 
     this.wmdCompany = value; 
    } 
} 
+0

에 의해 제안 다만 널 (null)을 사용할 수 없습니다 당신을 가정 - 나는 첫 번째 방법 자신과 함께 갈 것

. – Kezzer

1

의 DefaultValue 속성을 사용하지 않는이 같은 대해 어떻게