1
我使用實體框架6.1,DbContext,數據庫優先。 我知道我可以通過這樣的名稱獲得DBsets:context.Myobj1,context.Myobj2 .....在DBContext上遍歷所有的DBSet(的TEntity)
但是有沒有可能爲...每個循環做一個並且一個一個得到所有DbContext上的DbSet(of Tentity)?
我使用實體框架6.1,DbContext,數據庫優先。 我知道我可以通過這樣的名稱獲得DBsets:context.Myobj1,context.Myobj2 .....在DBContext上遍歷所有的DBSet(的TEntity)
但是有沒有可能爲...每個循環做一個並且一個一個得到所有DbContext上的DbSet(of Tentity)?
您需要發現實體的類型。這取決於你的應用程序。您可以使用反射來發現這些類型。或者你可以硬編碼你的實體類型。
這個你可以循環但下山後:
var types = new [] { typeof(User), typeof(Role) }; // just example
foreach(var type in types)
{
foreach(var entity in context.DbSet(type))
{ ... }
}
*「您可以使用反射來發現這些類型」 - 是的,問題是如何做到這一點。 *「或者你可以硬編碼你的實體的類型」* - 當然,但這不是很有幫助。 –
您可以使用反射。這是DbContext做的發現模型。 – Pawel
看看http://romiller.com/2014/04/08/ef6-1-mapping-between-types-tables/ 類似於((((IObjectContextAdapter)ctx).ObjectContext.MetadataWorkspace).GetItems < EntityContainer>(DataSpace.CSpace).Single()。EntitySets'應該訣竅 – jbl