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