Skip to content

希望在注册freesql的时候能够配置schema #2222

@fate00001

Description

@fate00001

希望能默认支持,我们国产化数据库比较多,特别是pg类型的国产化数据库,最容易碰到。向作者致敬,注工作顺利
目前自我实现方式:
1、有实体映射数据表
public static IFreeSql UseGlobalSchema(this IFreeSql fsql)
{
var schema = System.Environment.GetEnvironmentVariable("db_schema");
if (!string.IsNullOrWhiteSpace(schema))
{
// 扫描所有程序集中带[Table]特性的实体(可根据需要添加程序集筛选)
var entities = GetTableEntities();
foreach (var type in entities)
{
fsql.CodeFirst.ConfigEntity(type, cfg =>
{
var tabeName = type.GetCustomAttribute(false)?.Name ?? string.Empty;
cfg.Name($"{schema}.{tabeName}");
});
}
return fsql;
}
return fsql;
}
2、无实体映射数据表
var schema = System.Environment.GetEnvironmentVariable("db_schema");
freeSql.Aop.ConfigEntity += (s, e) =>
{
// 处理数据库模式
if (!string.IsNullOrWhiteSpace(schema))
{
var tabname = e.ModifyResult.Name;
if (!string.IsNullOrEmpty(e.ModifyResult.Name))
{
var spbit = e.ModifyResult.Name.Split('.');
if (spbit.Length == 1) // 说明没有拼接模式
{
e.ModifyResult.Name = $"{schema}.{tabname}";
}
}
}
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions