2011-06-23 62 views
1

我有如下表:實體框架 - 利雅服務代碼生成

CREATE TABLE [Location]([ADDRESS1] [nvarchar](50) NOT NULL DEFAULT (' ')); 

我將其導入到實體框架4.1。

實體框架的設計顯示了這個:

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] 
     [DataMemberAttribute()] 
     public global::System.String ADDRESS1 
     { 
      get 
      { 
       return _ADDRESS1; 
      } 
      set 
      { 
       OnADDRESS1Changing(value); 
       ReportPropertyChanging("ADDRESS1"); 
       _ADDRESS1 = StructuralObject.SetValidValue(value, false); 
       ReportPropertyChanged("ADDRESS1"); 
       OnADDRESS1Changed(); 
      } 
     } 
     private global::System.String _ADDRESS1 = " "; 
     partial void OnADDRESS1Changing(global::System.String value); 
     partial void OnADDRESS1Changed(); 

當我建立它,我得到一個* .web.g.cs文件在我的Silverlight應用程序和現場看起來是這樣的:

[DataMember()] 
     [Required()] 
     [StringLength(50)] 
     public string ADDRESS1 
     { 
      get 
      { 
       return this._address1; 
      } 
      set 
      { 
       if ((this._address1 != value)) 
       { 
        this.OnADDRESS1Changing(value); 
        this.RaiseDataMemberChanging("ADDRESS1"); 
        this.ValidateProperty("ADDRESS1", value); 
        this._address1 = value; 
        this.RaiseDataMemberChanged("ADDRESS1"); 
        this.OnADDRESS1Changed(); 
       } 
      } 
     } 

我是否在實體框架中缺少設置?在我看來,如果該字段是NOT NULL,那麼代碼生成會根據需要標記字段,即使我告訴它默認是string.empty(或空白)。

回答

1

NOT NULL表示需要。這是唯一控制必須提供值的地方。

新記錄的空字符串並不意味着您不能顯式插入NULL值,但NOT NULL將阻止您這樣做。

相關問題