2010-12-14 43 views

Répondre

9

En général, vous ne pouvez pas faire cela - vous devez le faire dans une boucle. Dans certains cas, cependant, vous pouvez éviter d'ajouter chaque objet, en particulier si vous avez un graphe d'entité et que vous ajoutez le noeud parent. Par exemple. si vous avez un objet Company qui a une collection de Employees:

context.AddToCompanies(company); 

/* The following loop is not necessary */ 
/* The employees will be saved together with the company */ 
/* 
foreach (var employee in company.Employees) 
{ 
    context.AddToEmployees(employee); 
}*/ 

context.SaveChanges(); 
6

LINQ et quelques lambdas vous pouvez semer facilement comme ça.

Note: En ce qui concerne votre version actuelle, vous pouvez faire

List<Company> companies = new List<Company>(); 

companies.ForEach(n => context.AddToCompanies(n)); 

Ceci est la façon dont je fais avec Entity Framework 4.1 ou supérieur au code première approche

List<RelationshipStatus> statuses = new List<RelationshipStatus>() 
{ 
    new RelationshipStatus(){Name = "Single"}, 
    new RelationshipStatus(){Name = "Exclusive Relationship"}, 
    new RelationshipStatus(){Name = "Engaged"}, 
    new RelationshipStatus(){Name = "Married"}, 
    new RelationshipStatus(){Name = "Open Relationship"}, 
    new RelationshipStatus(){Name = "Commited Relationship"} 
}; 

statuses.ForEach(n => myContext.RelationshipStatuses.Add(n)); 
myContext.SaveChanges(); 

Le contexte a été configuré comme suit

public class MyContext:DbContext 
{ 
    public DbSet<RelationshipStatus> RelationshipStatuses{ get; set; } 
} 
-2

Oui vous pouvez, comme

List<Employee> empList = this.context.Employee.ToList();