Я просмотрел соответствующие посты, на которые были даны ответы, но все равно получаю исключение NullReference
в InsertOnSubmit()
.
У меня есть автоматически сгенерированная транзакция LINQ
класса, из которой я создаю производный класс, который переопределяет ToString()
:
public partial class MyTransaction:DataAccess.Transaction
{
public MyTransaction():base()
{
}
public override string ToString()
{
return "some text";
}
}
И вставка выглядит следующим образом:
public bool InsertTransaction(Transaction t)
{
using (MarketPricesDataContext dataContext = new MarketPricesDataContext(connectionString))
{
try
{
dataContext.Transaction.InsertOnSubmit(t);
dataContext.SubmitChanges();
return true;
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return false;
}
}
}
Я думал, что вызов базового конструктора из MyTransaction
решит мою проблему, но это не так.Я могу вставить элементы транзакции, но когда я пытаюсь вставить элемент MyTransaction
, я получаю NullReferenceException
.
Это работает:
Transaction t=new Transaction();
t.Type="A"; //set some values
Data d=new Data();
d.InsertTransaction(t);
Это выдает NullReferenceException
(Ссылка на объект не установлена наэкземпляр объекта.) в InsertOnSubmit()
:
MyTransaction myt=new MyTransaction();
myt.Type="A"; //set some values
Data d=new Data();
d.InsertTransaction(myt as Transaction);
Что я делаю не так?