[英]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.