Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions SQLite.CodeFirst/Builder/CreateDatabaseStatementBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@ public CreateDatabaseStatement BuildStatement()

private IEnumerable<CreateTableStatement> GetCreateTableStatements()
{
foreach (var entityType in edmModel.EntityTypes)
foreach (var entitySet in edmModel.Container.EntitySets)
{
ICollection<AssociationType> associationTypes =
edmModel.AssociationTypes.Where(a => a.Constraint.ToRole.Name == entityType.Name).ToList();
edmModel.AssociationTypes.Where(a => a.Constraint.ToRole.Name == entitySet.Name).ToList();

var tableStatementBuilder = new CreateTableStatementBuilder(entityType, associationTypes);
var tableStatementBuilder = new CreateTableStatementBuilder(entitySet, associationTypes);
yield return tableStatementBuilder.BuildStatement();
}
}

private IEnumerable<CreateIndexStatementCollection> GetCreateIndexStatements()
{
foreach (var entityType in edmModel.EntityTypes)
foreach (var entitySet in edmModel.Container.EntitySets)
{
var indexStatementBuilder = new CreateIndexStatementBuilder(entityType);
var indexStatementBuilder = new CreateIndexStatementBuilder(entitySet);
yield return indexStatementBuilder.BuildStatement();
}
}
Expand Down
11 changes: 5 additions & 6 deletions SQLite.CodeFirst/Builder/CreateIndexStatementBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,24 @@
using System.Data.Entity.Core.Metadata.Edm;
using System.Data.Entity.Infrastructure.Annotations;
using System.Linq;
using SQLite.CodeFirst.Extensions;
using SQLite.CodeFirst.Statement;

namespace SQLite.CodeFirst.Builder
{
internal class CreateIndexStatementBuilder : IStatementBuilder<CreateIndexStatementCollection>
{
private readonly EntityType entityType;
private readonly EntitySet entitySet;

public CreateIndexStatementBuilder(EntityType entityType)
public CreateIndexStatementBuilder(EntitySet entitySet)
{
this.entityType = entityType;
this.entitySet = entitySet;
}

public CreateIndexStatementCollection BuildStatement()
{
IDictionary<string, CreateIndexStatement> createIndexStatments = new Dictionary<string, CreateIndexStatement>();

foreach (var edmProperty in entityType.Properties)
foreach (var edmProperty in entitySet.ElementType.Properties)
{
var indexAnnotations = edmProperty.MetadataProperties
.Select(x => x.Value)
Expand All @@ -38,7 +37,7 @@ public CreateIndexStatementCollection BuildStatement()
{
IsUnique = index.IsUnique,
Name = indexName,
Table = entityType.GetTableName(),
Table = entitySet.Table,
Columns = new Collection<CreateIndexStatement.IndexColumn>()
};
createIndexStatments.Add(indexName, createIndexStatement);
Expand Down
12 changes: 6 additions & 6 deletions SQLite.CodeFirst/Builder/CreateTableStatementBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ namespace SQLite.CodeFirst.Builder
{
internal class CreateTableStatementBuilder : IStatementBuilder<CreateTableStatement>
{
private readonly EntityType entityType;
private readonly EntitySet entitySet;
private readonly IEnumerable<AssociationType> associationTypes;

public CreateTableStatementBuilder(EntityType entityType, IEnumerable<AssociationType> associationTypes)
public CreateTableStatementBuilder(EntitySet entitySet, IEnumerable<AssociationType> associationTypes)
{
this.entityType = entityType;
this.entitySet = entitySet;
this.associationTypes = associationTypes;
}

public CreateTableStatement BuildStatement()
{
var simpleColumnCollection = new ColumnStatementCollectionBuilder(entityType.Properties).BuildStatement();
var primaryKeyStatement = new PrimaryKeyStatementBuilder(entityType.KeyMembers).BuildStatement();
var simpleColumnCollection = new ColumnStatementCollectionBuilder(entitySet.ElementType.Properties).BuildStatement();
var primaryKeyStatement = new PrimaryKeyStatementBuilder(entitySet.ElementType.KeyMembers).BuildStatement();
var foreignKeyCollection = new ForeignKeyStatementBuilder(associationTypes).BuildStatement();

var columnStatements = new List<IStatement>();
Expand All @@ -29,7 +29,7 @@ public CreateTableStatement BuildStatement()

return new CreateTableStatement
{
TableName = entityType.GetTableName(),
TableName = entitySet.Table,
ColumnStatementCollection = new ColumnStatementCollection(columnStatements)
};
}
Expand Down