繁体   English   中英

来自表名的实体框架实体信息(用于审计)

[英]Entity Framework Entity Information from the Table Name (for auditing)

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

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

我为什么要这样做?

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

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

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

        // 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();
            // ...
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM