【问题标题】:Entity Framework Entity Information from the Table Name (for auditing)表名中的实体框架实体信息(用于审计)
【发布时间】:2020-10-05 16:52:43
【问题描述】:

在 Entity Framework(用于 .NET Core)中,可以从对象类型中获取实体和属性信息,例如 DB.Model.FindEntityType(curObj.GetType()).GetProperties(),然后像 property.SqlServer() 这样的调用可以为您提供映射的属性信息。

是否可以以表名而不是实体类型开头?例如,假设我知道表名为EMPLOYEE,有没有办法让实体框架给我映射到这个表名的实体?

我为什么要这样做?

我知道这不是使用 Entity Framework 的标准方式,但我们现在想要向用户展示一个数据库审计系统,因此我们需要手动将数据库数据映射到代码。

【问题讨论】:

  • 我希望我有一本手册来处理实体框架创建的所有元数据。

标签: c# entity-framework


【解决方案1】:

我认为没有办法直接做到这一点。

我所做的是扫描我的实体所在的程序集和命名空间,并通过手动循环每个实体来填充我自己的结构。

        // null checks removed for demonstration
        var asm = Assembly.Load(myEntityAssembly);
        var classes = asm.GetTypes().Where(p => p.Namespace?.StartsWith(myEntityNamespace) == true).ToList();

        foreach (var type in classes)
        {
            var entityType = DB.Model.FindEntityType(type);
            var tableName = entityType.SqlServer().TableName.ToUpper();
            // ...
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2017-04-03
    • 2013-10-31
    • 2016-12-30
    • 2016-02-24
    相关资源
    最近更新 更多