Создание объекта со связанными объектами в Entity Framework 4.1 - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть следующие таблицы базы данных / объекты EF

public class Transaction
{
    //some other properties
    public ICollection<TransactionItems> Items {get; set;}

}

public class TransactionItems
{
    //some properties
}

Мне нужно создать новый экземпляр транзакции вместе с несколькими экземплярами TransactionItems для его свойства Items и сохранить все это вмоя БД

Я попробовал следующее:

Transaction trans = new Transaction();
//set its properties

Затем в цикле foreach я перебираю коллекцию и создаю новый TransactionItem для каждого члена и пытаюсь добавить его в транс.Object Item Collection

foreach(var item in myCollection)
{

     TransactionItem newItem = new TransactionItem();
     //set its properties

     //add it to the tran Item collection
    tran.TransactionItems.Add(newItem);//getting null reference here...

}

Я получаю исключение нулевой ссылки, когда пытаюсь добавить транзакциюITITem в коллекцию Item моего объекта Transaction.Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

Вам нужно инициализировать свойство для хранения экземпляра коллекции в конструкторе:

Items = new HashSet<TransactionItems>();
1 голос
/ 08 ноября 2011

Вы когда-нибудь инициализировали TransactionItems в конструкторе для Transaction или в своем фактическом коде?

public class Transaction
{
    public Transaction()
    {
        Items = new List<TransactionItems>();
    }

    //some other properties
    public ICollection<TransactionItems> Items {get; set;}
}

Или менее предпочтительно (если вы не выполняете вышеописанное):

Transaction trans = new Transaction()
{
    Items = myCollection.Select(
        item => new TransactionItem
        {
            // set its properties
        })
        .ToList();
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...