2010-03-14 4 views
2

У меня довольно неприятная проблема с LinqToSql. Я создал класс, который является производным от класса в DataContext.[LINQ] InsertOnSubmit NullReferenceException

Проблема в том, что как только я использую «InsertOnSubmit (this)»; на этом производном классе я получаю исключение NullReferenceException.

Я видел некоторых людей с той же проблемой. Однако они использовали настраиваемый конструктор и решили проблему, вызвав «: this()» как этот поток http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/0cf1fccb-6398-4f16-920b-adef9dc4ac9f

Разница в том, что я использую конструктор по умолчанию, который вызывает вызов конструктора базы данных, поэтому не должно быть любая проблема!

Может кто-то, пожалуйста, помогите мне в этом, начнет раздражать!

Спасибо :)

+0

Вы можете разместить трассировки стека вас получить с исключением бросили? Это лучшая отправная точка для выяснения исключения. –

+0

Конечно! InsertOnSubmit (объект TEntity) MDK.Security.Messaging.Message.Send() в E: \ Users \ Kurt \ Documents \ Visual Studio 2008 \ Projects \ MDK \ MDK.Security \ Messaging \ Message.cs: строка 62 MDK.Tests .MessagingTests.UsersCanSendMessages() в E: \ Users \ Kurt \ Documents \ Visual Studio 2008 \ Projects \ MDK \ MDK.Tests \ MessagingTests.cs: строка 89 –

+0

Дубликаты: http://stackoverflow.com/questions/499436/linq -insertonsubmit-nullreferenceexception, среди прочих. Все они имеют одно из двух решений, в зависимости от того, является ли это частичным или производным классом. –

ответ

0

Это один из способов: https://stackoverflow.com/....

Если вы просто хотите, чтобы предварительно заполнить несколько полей, альтернативой может быть:

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 
Смежные вопросы