Skip to content

Commit

Permalink
Use default schema for view mappings
Browse files Browse the repository at this point in the history
Fixes #23274
  • Loading branch information
AndriySvyryd committed Nov 12, 2020
1 parent 292a292 commit fe4f5e6
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ public static string GetDefaultViewSchema([NotNull] this IEntityType entityType)
return ownership.PrincipalEntityType.GetViewSchema();
}

return null;
return GetViewName(entityType) != null ? entityType.Model.GetDefaultSchema() : null;
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,16 @@ public void Views_work()
Test(
modelBuilder => modelBuilder.Entity("Vista").ToView("Vista"),
new ModelCodeGenerationOptions { UseDataAnnotations = true },
code => Assert.Contains(".ToView(\"Vista\")", code.ContextFile.Code),
model => Assert.NotNull(
model.FindEntityType("TestNamespace.Vista").FindAnnotation(RelationalAnnotationNames.ViewDefinitionSql)));
code => Assert.Contains("entity.ToView(\"Vista\");", code.ContextFile.Code),
model => {
var entityType = model.FindEntityType("TestNamespace.Vista");
Assert.NotNull(entityType.FindAnnotation(RelationalAnnotationNames.ViewDefinitionSql));
Assert.Equal("Vista", entityType.GetViewName());
Assert.Null(entityType.GetViewSchema());
Assert.Null(entityType.GetTableName());
Assert.Null(entityType.GetSchema());
});
}

[ConditionalFact]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,42 @@ public void Gets_model_schema_if_schema_on_entity_type_not_set()
Assert.Null(entityType.GetSchema());
}

[ConditionalFact]
public void Can_get_and_set_view_schema_name_on_entity_type()
{
var modelBuilder = new ModelBuilder();

var entityType = modelBuilder
.Entity<Customer>()
.Metadata;

Assert.Null(entityType.GetViewSchema());

modelBuilder.HasDefaultSchema("dbo");

Assert.Null(entityType.GetViewSchema());

entityType.SetViewName("CustomerView");

Assert.Equal("dbo", entityType.GetViewSchema());

entityType.SetViewSchema(null);

Assert.Equal("dbo", entityType.GetViewSchema());

entityType.SetViewSchema("db0");

Assert.Equal("db0", entityType.GetViewSchema());

entityType.SetViewName(null);

Assert.Equal("db0", entityType.GetViewSchema());

entityType.SetViewSchema(null);

Assert.Null(entityType.GetViewSchema());
}

[ConditionalFact]
public void Can_get_and_set_column_type()
{
Expand Down

0 comments on commit fe4f5e6

Please sign in to comment.