Calling ObejectContext.CreateDatabaseScript for a model that includes a DateTimeOffset column results in a null reference exception in GetPrecision.
Here's the stacktrace:
```
at System.Data.Entity.SqlServer.Utilities.TypeUsageExtensions.GetFacetValue[T](TypeUsage type, String facetName)
at System.Data.Entity.SqlServer.Utilities.TypeUsageExtensions.GetPrecision(TypeUsage type)
at System.Data.Entity.SqlServer.SqlDdlBuilder.AppendType(EdmProperty column)
at System.Data.Entity.SqlServer.SqlDdlBuilder.AppendCreateTable(EntitySet entitySet)
at System.Data.Entity.SqlServer.SqlDdlBuilder.CreateObjectsScript(StoreItemCollection itemCollection, Boolean createSchemas)
at System.Data.Entity.SqlServer.SqlProviderServices.CreateObjectsScript(SqlVersion version, StoreItemCollection storeItemCollection)
at System.Data.Entity.SqlServer.SqlProviderServices.DbCreateDatabaseScript(String providerManifestToken, StoreItemCollection storeItemCollection)
at System.Data.Entity.Core.Common.DbProviderServices.CreateDatabaseScript(String providerManifestToken, StoreItemCollection storeItemCollection)
at System.Data.Entity.Core.Objects.ObjectContext.CreateDatabaseScript()
at GenerateScripts.Program.Main(String[] args) in e:\TempProjects\GenerateScripts\GenerateScripts\Program.cs:line 51
```
I spent an afternoon digging through the source and trying to debug this issue but i could't track down exactly where it should be fixed. But, i did come up with a failling test to reproduce it:
```
[Fact]
public void MapEntityType_should_correctly_map_offsetdatetime()
{
var model = new EdmModel(DataSpace.CSpace);
var typeMapper = new TypeMapper(new MappingContext(new ModelConfiguration(), new ConventionsConfiguration(), model));
var mockObjectType = new MockType("Foo")
.Property<int>("Id")
.Property<DateTimeOffset>("Baz");
new MockAssembly(mockObjectType);
var entityType = typeMapper.MapEntityType(mockObjectType);
Assert.NotNull(entityType.DeclaredMembers["Baz"].TypeUsage.Facets["Precision"].Value);
}
```
Here's the stacktrace:
```
at System.Data.Entity.SqlServer.Utilities.TypeUsageExtensions.GetFacetValue[T](TypeUsage type, String facetName)
at System.Data.Entity.SqlServer.Utilities.TypeUsageExtensions.GetPrecision(TypeUsage type)
at System.Data.Entity.SqlServer.SqlDdlBuilder.AppendType(EdmProperty column)
at System.Data.Entity.SqlServer.SqlDdlBuilder.AppendCreateTable(EntitySet entitySet)
at System.Data.Entity.SqlServer.SqlDdlBuilder.CreateObjectsScript(StoreItemCollection itemCollection, Boolean createSchemas)
at System.Data.Entity.SqlServer.SqlProviderServices.CreateObjectsScript(SqlVersion version, StoreItemCollection storeItemCollection)
at System.Data.Entity.SqlServer.SqlProviderServices.DbCreateDatabaseScript(String providerManifestToken, StoreItemCollection storeItemCollection)
at System.Data.Entity.Core.Common.DbProviderServices.CreateDatabaseScript(String providerManifestToken, StoreItemCollection storeItemCollection)
at System.Data.Entity.Core.Objects.ObjectContext.CreateDatabaseScript()
at GenerateScripts.Program.Main(String[] args) in e:\TempProjects\GenerateScripts\GenerateScripts\Program.cs:line 51
```
I spent an afternoon digging through the source and trying to debug this issue but i could't track down exactly where it should be fixed. But, i did come up with a failling test to reproduce it:
```
[Fact]
public void MapEntityType_should_correctly_map_offsetdatetime()
{
var model = new EdmModel(DataSpace.CSpace);
var typeMapper = new TypeMapper(new MappingContext(new ModelConfiguration(), new ConventionsConfiguration(), model));
var mockObjectType = new MockType("Foo")
.Property<int>("Id")
.Property<DateTimeOffset>("Baz");
new MockAssembly(mockObjectType);
var entityType = typeMapper.MapEntityType(mockObjectType);
Assert.NotNull(entityType.DeclaredMembers["Baz"].TypeUsage.Facets["Precision"].Value);
}
```