De nombreuses de Nombreuses Relations pas l'économie

J'ai deux entités avec une assez standard de Nombreux de Nombreux de la relation que j'ai créé en EF 5 le Premier Code. Ces sont de Service et ServiceItem. L'entité de Service contient une collection de ServiceItems et la ServiceItem contient une collection de Services. Je peux créer, modifier et enregistrer des données à l'une des entités les propriétés de base sans problème. Lorsque j'essaie d'ajouter un ServiceItem d'un Service ou d'un Service à un ServiceItem il semble fonctionner, mais rien n'est sauvegardé. J'ai vérifié que toutes les tables de base de données sont créés, y compris un ServiceItemService table avec la croix-clés. La base de données ServiceItemService tableau ne peut pas faire d'entrée quand j'ai ajouter les éléments. Il n'y a pas d'erreur et tout le reste semble fonctionner parfaitement.

Je suis un peu perplexe et pourrait utiliser un peu d'aide. Ci-dessous sont les classes.

La classe de Service;

public class Service
{
    //Default constructor
    public Service()
    {
        //Defaults
        IsActive = true;
        ServicePeriod = ServicePeriodType.Monthly;
        ServicePeriodDays = 0;

        ServiceItems = new Collection<ServiceItem>();
    }

    public int ServiceID { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public ICollection<ServiceItem> ServiceItems { get; set; }
    public string TermsOfService { get; set; }
    public ServicePeriodType ServicePeriod { get; set; }
    public int ServicePeriodDays { get; set; }
    public bool IsActive { get; set; }
}

La ServiceItem classe;

public class ServiceItem
{
    public ServiceItem()
    {
        IsActive = true;
    }

    public int ServiceItemID { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public ICollection<Service> Services { get; set; }
    public string UserRole { get; set; }
    public bool IsActive { get; set; }

}

C'est la fluidité de la cartographie je l'ai fait tout en essayant de corriger de cette question. Le même problème s'est passé avant et après l'ajout de cette cartographie.

    public DbSet<Service> Services { get; set; }
    public DbSet<ServiceItem> ServiceItems { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Service>()
           .HasMany(p => p.ServiceItems)
           .WithMany(r => r.Services)
           .Map(mc =>
           {
               mc.MapLeftKey("ServiceItemID");
               mc.MapRightKey("ServiceID");
               mc.ToTable("ServiceItemService");
           });
    }

Voici le code que j'utilise pour enregistrer l'élément de Service qui comprend 2 ou 3 ServiceItems dans le Service.ServiceItems collection. J'ai bien vérifié que le ServiceItems étaient dans la bonne collection.

                db.Entry(dbService).State = EntityState.Modified;
                db.SaveChanges();

La dbService objet ne semble pas être affecté d'une quelconque manière. Le ServiceItems sont toujours dans la bonne collection, mais pas de mise à jour sont apportées à la ServiceItemService table de base de données. Tout conseil serait le bienvenu.

-Grâce

InformationsquelleAutor drobertson | 2012-12-31