Quantcast
Channel: Entity Framework
Viewing all articles
Browse latest Browse all 10318

Commented Issue: Code First :: Null Reference Exception thrown when creating model with entity splitting and table splitting [867]

$
0
0
When trying to issue query (or whatever else) with the following model (with entity splitting and table splitting), I get NullReferenceException:

public class ArubaRun
{
public int Id { get; set; }
public ArubaOwner RunOwner { get; set; }
public ICollection<ArubaTask> Tasks { get; set; }
}

public class ArubaTask
{
public int Id { get; set; }
}

public class ArubaOwner
{
public int Id { get; set; }
public ArubaRun OwnedRun { get; set; }
public ICollection<ArubaBug> Bugs { get; set; }
}

public class ArubaBug
{
public int Id { get; set; }
public int Number { get; set; }
public string Comment { get; set; }
}

public class ArubaContext : DbContext
{
public DbSet<ArubaRun> Runs { get; set; }
public DbSet<ArubaTask> Tasks { get; set; }
public DbSet<ArubaOwner> Owners { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ArubaRun>().HasRequired(r => r.RunOwner).WithRequiredDependent(o => o.OwnedRun);

// table splitting
modelBuilder.Entity<ArubaOwner>().ToTable("OwnersAndRuns");
modelBuilder.Entity<ArubaRun>().ToTable("OwnersAndRuns");

// entity splitting
modelBuilder.Entity<ArubaBug>().Map(m =>
{
m.Properties(p => new { p.Id, p.Comment });
m.ToTable("Bugs1");
});
modelBuilder.Entity<ArubaBug>().Map(m =>
{
m.Properties(p => new { p.Number });
m.ToTable("Bugs2");
});
}
}



Exception is as follows:
Object reference not set to an instance of an object.

System.Data.Entity.Edm.Serialization.EdmSerializationVisitor.VisitEdmAssociationSet(System.Data.Entity.Core.Metadata.Edm.AssociationSet item)

System.Data.Entity.Edm.EdmModelVisitor.VisitCollection<System.Data.Entity.Core.Metadata.Edm.AssociationSet>(System.Collections.Generic.IEnumerable<System.Data.Entity.Core.Metadata.Edm.AssociationSet> collection, System.Action<System.Data.Entity.Core.Metadata.Edm.AssociationSet> visitMethod)

System.Data.Entity.Edm.EdmModelVisitor.VisitAssociationSets(System.Data.Entity.Core.Metadata.Edm.EntityContainer container, System.Collections.Generic.IEnumerable<System.Data.Entity.Core.Metadata.Edm.AssociationSet> associationSets)

System.Data.Entity.Edm.EdmModelVisitor.VisitEdmEntityContainer(System.Data.Entity.Core.Metadata.Edm.EntityContainer item)

System.Data.Entity.Edm.Serialization.EdmSerializationVisitor.VisitEdmEntityContainer(System.Data.Entity.Core.Metadata.Edm.EntityContainer item)

System.Data.Entity.Edm.EdmModelVisitor.VisitCollection<System.Data.Entity.Core.Metadata.Edm.EntityContainer>(System.Collections.Generic.IEnumerable<System.Data.Entity.Core.Metadata.Edm.EntityContainer> collection, System.Action<System.Data.Entity.Core.Metadata.Edm.EntityContainer> visitMethod)

System.Data.Entity.Edm.EdmModelVisitor.VisitEntityContainers(System.Collections.Generic.IEnumerable<System.Data.Entity.Core.Metadata.Edm.EntityContainer> entityContainers)

System.Data.Entity.Edm.EdmModelVisitor.VisitEdmModel(System.Data.Entity.Core.Metadata.Edm.EdmModel item)

System.Data.Entity.Edm.Serialization.EdmSerializationVisitor.Visit(System.Data.Entity.Core.Metadata.Edm.EdmModel edmModel, string namespaceName, string provider, string providerManifestToken)

System.Data.Entity.Edm.Serialization.EdmSerializationVisitor.Visit(System.Data.Entity.Core.Metadata.Edm.EdmModel edmModel, string provider, string providerManifestToken)

System.Data.Entity.Edm.Serialization.SsdlSerializer.Serialize(System.Data.Entity.Core.Metadata.Edm.EdmModel dbDatabase, string provider, string providerManifestToken, System.Xml.XmlWriter xmlWriter, bool serializeDefaultNullability)

System.Data.Entity.ModelConfiguration.Edm.Serialization.EdmxSerializer.WriteEdmxRuntime()

System.Data.Entity.ModelConfiguration.Edm.Serialization.EdmxSerializer.Serialize(System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping databaseMapping, System.Data.Entity.Infrastructure.DbProviderInfo providerInfo, System.Xml.XmlWriter xmlWriter)

System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(System.Data.Entity.Infrastructure.DbModel model, System.Xml.XmlWriter writer)

System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(System.Data.Entity.DbContext context, System.Xml.XmlWriter writer)

System.Data.Entity.Utilities.DbContextExtensions.GetModel.AnonymousMethod__0(System.Xml.XmlWriter w)

System.Data.Entity.Utilities.DbContextExtensions.GetModel(System.Action<System.Xml.XmlWriter> writeXml)

System.Data.Entity.Utilities.DbContextExtensions.GetModel(System.Data.Entity.DbContext context)

System.Data.Entity.Internal.InternalContext.ModelMatches(System.Xml.Linq.XDocument model)

System.Data.Entity.Internal.ModelCompatibilityChecker.CompatibleWithModel(System.Data.Entity.Internal.InternalContext internalContext, System.Data.Entity.Internal.ModelHashCalculator modelHashCalculator, bool throwIfNoMetadata)

System.Data.Entity.Internal.InternalContext.CompatibleWithModel(bool throwIfNoMetadata)

System.Data.Entity.Database.CompatibleWithModel(bool throwIfNoMetadata)

System.Data.Entity.DropCreateDatabaseIfModelChanges<System.Data.Entity.TestModels.ArubaModel.ArubaContext>.InitializeDatabase(System.Data.Entity.TestModels.ArubaModel.ArubaContext context)

System.Data.Entity.Internal.InternalContext.CreateInitializationAction<System.Data.Entity.TestModels.ArubaModel.ArubaContext>.AnonymousMethod__b()

System.Data.Entity.Internal.InternalContext.PerformInitializationAction(System.Action action)

System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()

System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase.AnonymousMethod__4(System.Data.Entity.Internal.InternalContext c)

System.Data.Entity.Internal.RetryAction<System.Data.Entity.Internal.InternalContext>.PerformAction(System.Data.Entity.Internal.InternalContext input)

System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(System.Action<System.Data.Entity.Internal.InternalContext> action)

System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()

System.Data.Entity.Internal.InternalContext.Initialize()

System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(System.Type entityType)

System.Data.Entity.Internal.Linq.InternalSet<System.Data.Entity.TestModels.ArubaModel.ArubaOwner>.Initialize()

System.Data.Entity.Internal.Linq.InternalSet<System.Data.Entity.TestModels.ArubaModel.ArubaOwner>.InternalContext.get()

System.Data.Entity.Infrastructure.DbQuery<System.Data.Entity.TestModels.ArubaModel.ArubaOwner>.System.Linq.IQueryable.Provider.get()





Comments: I am not sure if this is exactly the same issue but the stack trace looks very similar: http://entityframework.codeplex.com/discussions/434773

Viewing all articles
Browse latest Browse all 10318

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>