public void EDMX_can_be_written_from_DbModel() { var edm = SimpleModelContext.CreateBuilder().Build(ProviderRegistry.Sql2008_ProviderInfo); var edmxBuilder = new StringBuilder(); EdmxWriter.WriteEdmx(edm, XmlWriter.Create(edmxBuilder)); SanityCheckEdmx(edmxBuilder); }
/// <summary> /// Creates the metadata files (CSDL/SSDL/MSL) for the SimpleModelContext. /// </summary> protected static void CreateMetadataFilesForSimpleModel() { if (!_metadataForSimpleModelCreated) { var builder = SimpleModelContext.CreateBuilder(); ModelHelpers.WriteMetadataFiles(builder, @".\SimpleModel"); using (var connection = SimpleConnection <SimpleModelContext>()) { new SimpleModelContext(connection, builder.Build(connection).Compile()).Database.Initialize(false); } _metadataForSimpleModelCreated = true; } }
public void Edmx_can_be_written_from_a_context_created_using_DbCompiledModel() { var edmxBuilder = new StringBuilder(); var model = SimpleModelContext.CreateBuilder().Build(ProviderRegistry.Sql2008_ProviderInfo).Compile(); using (var context = new SimpleModelContext(model)) { EdmxWriter.WriteEdmx(context, XmlWriter.Create(edmxBuilder)); // Quick sanity check that the context is still usable. Assert.NotNull(context.Products.Find(1)); } SanityCheckEdmx(edmxBuilder); }
public void CreateObjectContext_loads_o_space_metadata() { var builder = SimpleModelContext.CreateBuilder(); using (var connection = SimpleConnection <SimpleModelContext>()) { using (var context = builder.Build(connection).Compile().CreateObjectContext <ObjectContext>(connection)) { var objectItemCollection = (ObjectItemCollection)context.MetadataWorkspace.GetItemCollection(DataSpace.OSpace); var ospaceTypes = context.MetadataWorkspace.GetItems <EntityType>(DataSpace.OSpace); Assert.True(ospaceTypes.Any(t => objectItemCollection.GetClrType(t) == typeof(Product))); Assert.True(ospaceTypes.Any(t => objectItemCollection.GetClrType(t) == typeof(Category))); } } }
public void Existing_connection_used_with_an_existing_model_is_disposed_after_use_if_DbContext_owns_connection() { var connection = SimpleConnection <SimpleModelContext>(); var model = SimpleModelContext.CreateBuilder().Build(connection).Compile(); var disposed = false; connection.Disposed += (_, __) => disposed = true; using (var context = new DbContext(connection, model, contextOwnsConnection: true)) { context.Set <Product>().FirstOrDefault(); } Assert.True(disposed); }
private void Model_hash_can_be_obtained_from_Code_First_context_when_using_existing_model(bool initializeContext) { var model = SimpleModelContext.CreateBuilder().Build(ProviderRegistry.Sql2008_ProviderInfo).Compile(); using (var context = new SimpleModelContext(model)) { if (initializeContext) { context.Database.Initialize(force: false); } #pragma warning disable 612,618 var hash = EdmMetadata.TryGetModelHash(context); #pragma warning restore 612,618 Assert.NotNull(hash); } }
protected static TContext CreateContext <TContext>( DbContextConstructorArgumentType arguments, string providerName = "System.Data.SqlClient") where TContext : DbContext { DbConnection connection = null; if (arguments == DbContextConstructorArgumentType.Connection || arguments == DbContextConstructorArgumentType.ConnectionAndDbCompiledModel) { if (providerName == "System.Data.SqlClient") { connection = SimpleConnection <TContext>(); } else if (providerName == "System.Data.SqlServerCe.4.0") { connection = SimpleCeConnection <TContext>(); } else { throw new ArgumentException("Invalid provider specified, " + providerName); } } string connectionString = null; if (arguments == DbContextConstructorArgumentType.ConnectionString || arguments == DbContextConstructorArgumentType.ConnectionStringAndDbCompiledModel) { if (providerName == "System.Data.SqlClient") { connectionString = SimpleConnectionString <TContext>(); } else if (providerName == "System.Data.SqlServerCe.4.0") { connectionString = SimpleCeConnectionString <TContext>(); } else { throw new ArgumentException("Invalid provider specified, " + providerName); } } var providerInfo = (providerName == "System.Data.SqlServerCe.4.0") ? ProviderRegistry.SqlCe4_ProviderInfo : ProviderRegistry.Sql2008_ProviderInfo; TContext context = null; switch (arguments) { case DbContextConstructorArgumentType.Parameterless: context = (TContext)Activator.CreateInstance(typeof(TContext)); break; case DbContextConstructorArgumentType.DbCompiledModel: context = (TContext) Activator.CreateInstance( typeof(TContext), SimpleModelContext.CreateBuilder().Build(providerInfo).Compile()); break; case DbContextConstructorArgumentType.Connection: context = (TContext)Activator.CreateInstance(typeof(TContext), connection, false); break; case DbContextConstructorArgumentType.ConnectionString: context = (TContext)Activator.CreateInstance(typeof(TContext), connectionString); break; case DbContextConstructorArgumentType.ConnectionAndDbCompiledModel: context = (TContext) Activator.CreateInstance( typeof(TContext), connection, SimpleModelContext.CreateBuilder().Build(connection).Compile(), false); break; case DbContextConstructorArgumentType.ConnectionStringAndDbCompiledModel: context = (TContext) Activator.CreateInstance( typeof(TContext), connectionString, SimpleModelContext.CreateBuilder().Build(providerInfo).Compile()); break; default: throw new ArgumentException("Invalid DbContext constructor arguments " + arguments); } return(context); }