2010-03-14 6 views
2

J'ai un problème plutôt ennuyeux avec LinqToSql. J'ai créé une classe dérivée de la classe dans DataContext.[LINQ] InsertOnSubmit NullReferenceException

Le problème est que dès que j'utilise "InsertOnSubmit (this);" sur cette classe dérivée, j'obtiens une exception NullReferenceException.

J'ai vu des gens avec le même problème. Cependant, ils ont utilisé un constructeur personnalisé et résolu le problème en appelant ": this()" comme ce thread http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/0cf1fccb-6398-4f16-920b-adef9dc4ac9f

La différence est que j'utilise un constructeur par défaut qui provoque l'appel du constructeur de base, donc il ne devrait pas y avoir aucun problème!

Quelqu'un pourrait m'aider s'il vous plaît avec cela, commence à devenir ennuyeux!

Merci :)

+0

Pouvez-vous poster la trace de la pile vous obtenir avec l'exception est levée? C'est le meilleur point de départ pour trouver une exception. –

+0

Bien sûr! InsertOnSubmit (entité TEntity) MDK.Security.Messaging.Message.Send() dans E: \ Users \ Kurt \ Documents \ Visual Studio 2008 \ Projets \ MDK \ MDK.Security \ Messaging \ Message.cs: ligne 62 MDK.Tests .MessagingTests.UsersCanSendMessages() dans E: \ Utilisateurs \ Kurt \ Documents \ Visual Studio 2008 \ Projets \ MDK \ MDK.Tests \ MessagingTests.cs: ligne 89 –

+0

Duplicates: http://stackoverflow.com/questions/499436/linq -insertonsubmit-nullreferenceexception, entre autres. Ils ont tous l'une des deux solutions, selon qu'il s'agit d'une classe partielle ou dérivée. –

Répondre

0

C'est une façon: https://stackoverflow.com/....

Si vous voulez juste pour pré-remplir certains champs, une alternative pourrait être:

partial class MyLinqClass { 
    string Text = "Default"; 

    public MyLinqClass AsOne() { 
     Text = "One"; 
     ... 
     return this; 
    } 
} 

var x = new MyLinqClass().AsOne(); 
context.InsertOnSubmit(x); // x is type MyLinqClass 
Questions connexes