Вставить несколько объектов с помощью EntityFramework? - PullRequest
0 голосов
/ 01 сентября 2011

Я собираю вещи, которые мне нужны, в IEnumerable, а затем мне нужно вставить коллекцию в базу данных, но не могу понять, как. Пожалуйста, взгляните на мой фрагмент кода:

public void CopyPonyJetpacks(Pony p_s, Pony p_d)
{
    try
    {
        using (var scope = new TransactionScope())
        {

            var assocs = from x in p_s.Pony_Jetpacks
                         select new Pony_Jetpacks()
                         {
                             Id=Guid.NewGuid(),
                             JetpackId=x.JetpackId,
                             PonyId=p_d.Id
                         };

            data.Pony_Jetpacks.AddObject(assocs); //This doesn't work, what to do?

            data.SaveChanges();
            scope.Complete();
        }
    }
    catch (Exception e)
    {
        throw e;
    }

}

Было бы очень грустно, если бы мне пришлось конвертировать 'ассоциации' в список, а затем вставлять один за другим.

1 Ответ

1 голос
/ 01 сентября 2011

Вам не нужно конвертировать assocs IEnumerable<T> в List<T>, но да, вам нужно вставить его один за другим:

foreach (var assoc in assocs)
    data.Pony_Jetpacks.AddObject(assoc);
...