2014-02-07 151 views
1

我試圖從我的webapp中使用代碼優先 - 遷移(Etity Framework)在SQL Server 2008中插入一些行。當我嘗試從程序包管理器控制檯執行Update-Database -Verbose -Force時出現錯誤Object Reference not set to an instance of an object error錯誤:對象引用未設置爲對象的實例錯誤

這裏是我試圖把類:

[Table("Poste")] 
    public class PosteModel 
    { 
     [Key] 
     [Required(ErrorMessage = "A remplir, champs obligatoire !")] 
     [Display(Name = "Nom du poste")] 
     public string nomPoste { get; set; } 

     [Required(ErrorMessage = "A remplir, champs obligatoire !")] 
     [Display(Name = "Nom d'utilisateur")] 
     public string nomUtilisateur { get; set; } 

     [Required(ErrorMessage = "A remplir, champs obligatoire !")] 
     [Display(Name = "Date d'ajout système")] 
     public DateTime dateAjoutSysteme { get; set; } 

     [Display(Name = "Liste des applications liées")] 
     public string adresseIPPoste { get; set; } 

     [Display(Name = "Numéro du port")] 
     public int numPort { get; set; } 

     [Display(Name = "Système d'exploitation")] 
     public string systemeExploitation { get; set; } 

     [Display(Name = "Version du système d'exploitation")] 
     public string versionSystemeExploitaion { get; set; } 

     [Display(Name = "Alertes déclenchées")] 
     public ICollection<AlerteModel> alertes { get; set; } 

     public PosteModel() { } 

     public PosteModel(string nomPoste, string nomUtilisateur, int numPort, string adresseIPPoste, 
      string systemeExploitaion, string versionSystemeExploitaion) 
     { 
      this.nomPoste = nomPoste.Trim(); 
      this.nomUtilisateur = nomUtilisateur.Trim(); 
      this.dateAjoutSysteme = DateTime.Now; 
      this.numPort = numPort; 
      this.adresseIPPoste = adresseIPPoste.Trim(); 
      this.systemeExploitation = systemeExploitation.Trim(); 
      this.versionSystemeExploitaion = versionSystemeExploitaion.Trim(); 
      this.alertes = null; 
     } 
    } 

而我的移民代碼:

protected override void Seed(MonitoringN.Models.MonitoringNDataContext context) 
     { 
context.Postes.AddOrUpdate(r => r.nomPoste, 
       new PosteModel("Siège2-Etage1-Bur18", "Foulen Ben Foulen Weld Foulen", 5409, "192.168.254.3", "Windows 7", "SP1"), 
       new PosteModel("Siège2-Etage1-Bur28", "Foulen Ben Foulen Weld Falten", 5409, "192.168.254.4", "Windows 7", "SP1") 
       ); 
} 

任何高招嗎?

+2

究竟問題出?你從哪裏得到錯誤? –

+1

可能重複[什麼是NullReferenceException,我該如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix-it) –

+0

@AndreiV,當我嘗試從包管理器控制檯執行'Update-Database -Verbose -Force'時。 – user3264174

回答

0

要求你提到

public DateTime dateAjoutSysteme { get; set; } 

嘗試添加類像這樣

var postmodel = new PosteModel 
        { 
         nomPoste = "abc",//or whatever name you want 
         nomUtilisateur = "xyz"//or whatever name you want 
         ....//initialize other fields here 
        }; 

然後將其添加到數據庫中這樣

context.PosteModel.Add(postmodel); 

確保你不會錯過所需的屬性

+0

請看看Poste類的構造器實現。 – user3264174

+1

你可以顯示'DbContext'類嗎? – Cybercop

相關問題