首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Relational()重构为NetCore3.0

如何将Relational()重构为NetCore3.0
EN

Stack Overflow用户
提问于 2019-10-27 21:40:48
回答 2查看 261关注 0票数 1

我不知道如何选择修改后的属性。

代码语言:javascript
复制
private void ApplySnakeCaseNames(ModelBuilder modelBuilder)
{
var mapper = new NpgsqlSnakeCaseNameTranslator();

        foreach (var entity in modelBuilder.Model.GetEntityTypes())
        {
            // modify column names
            foreach (var property in entity.GetProperties())
            {
                property.Relational().ColumnName = mapper.TranslateMemberName(property.Relational().ColumnName);
            }

            // modify table name
            entity.Relational().TableName = mapper.TranslateMemberName(entity.Relational().TableName);

            // move asp_net tables into schema 'identity'
            if (entity.Relational().TableName.StartsWith("asp_net_"))
            {
                entity.Relational().TableName = entity.Relational().TableName.Replace("asp_net_", string.Empty);
                entity.Relational().Schema = "identity";
            }
        }
    }

我期望保留原件的输出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-30 13:11:33

对于IMutableEntityTypeIMutableProperty,它们公开方法而不是属性来更改名称。

尝试如下所示:

代码语言:javascript
复制
        foreach (var entity in modelBuilder.Model.GetEntityTypes())
        {
            // modify column names
            foreach (var property in entity.GetProperties())
            {
                property.SetColumnName(mapper.TranslateMemberName(property.GetColumnName()));
            }

            // modify table name
            entity.SetTableName(mapper.TranslateMemberName(entity.GetTableName()));

            // move asp_net tables into schema 'identity'
            if (entity.GetTableName().StartsWith("asp_net_"))
            {
                entity.SetTableName(entity.GetTableName().Replace("asp_net_", string.Empty));
                entity.SetSchema("identity");
            }
        }
票数 0
EN

Stack Overflow用户

发布于 2019-10-27 21:48:43

这是Entity Framework Core 3中的重大变化

代码语言:javascript
复制
IProperty.Relational().ColumnName -> IProperty.GetColumnName()

参考:https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes#id=%22provider-specific-metadata-api-changes%22

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58579943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档