EntityFramework7 - 约定,属性和配置

时间:2015-10-09 10:34:20

标签: c# .net entity-framework entity-framework-core

尝试更新到EntityFramework7,但无法找到这些方法。在EF6中,我们可以做这样的事情

公约

modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

属性

modelBuilder.Properties<DateTime>()
            .Configure(c => c
                .HasColumnType("datetime2")
                .HasPrecision(0));

配置

modelBuilder.Configurations.Add(new ModuleConfig());

我已经读过1个stackoverflow帖子,说配置不再可能了,所以你必须在OnModalCreating方法中写下这一切,这看起来很愚蠢,因为方法会很大,但也许这是旧版本? / p>

我正在使用beta7

1 个答案:

答案 0 :(得分:3)

请记住,beta7尚未完成功能,即使RC1也不具备与EF6相同的功能。

自定义约定位于timeZone

对于属性,您可以使用以下内容;

protected override void OnModelCreating(ModelBuilder builder) 
{
    foreach (var type in builder.Model.EntityTypes.Where(type => type.HasClrType))
    {
        foreach (var property in type.Properties)
        {
            if (property.ClrType == typeof(DateTime))
            {
                builder.Entity(type.ClrType)
                    .Property(property.ClrType, property.Name)
                    .HasSqlServerColumnType("datetime2(0)");
            }
        }
    }
}