2011-12-30 43 views
2

首先在EF代碼中,使用流利接口指定字段屬性和關係。這建立了一個模型。是否有可能得到這個模型的參考,並反思它? 我希望能夠檢索給定的領域,如果它是必需的,它的數據類型是什麼,什麼長度等...EF代碼首先,如何反映模型

回答

2

您需要訪問MetadataWorkspace。 API非常神祕。您可能需要用DataSpace.SSpace替換DataSpace.CSpace以獲取數據庫元數據。

public class MyContext : DbContext 
{ 

    public void Test() 
    {    
     var objectContext = ((IObjectContextAdapter)this).ObjectContext; 

     var mdw = objectContext.MetadataWorkspace; 

     var items = mdw.GetItems<EntityType>(DataSpace.CSpace); 
     foreach (var i in items) 
     { 
      foreach (var member in i.Members) 
      { 
       var prop = member as EdmProperty; 
       if (prop != null) 
       { 

       } 
      } 
     } 
}