Как получить метаданные dbsets из EF CodeFirst DbContext?

Как вы программно получаете метаданные для классов dbset из EF CodeFirst dbcontext? Это необходимо для создания кода для создания кода.

Ответы

Ответ 1

После некоторых дополнительных исследований, я думаю, что нашел ответ. В принципе, вам нужно спуститься в ObjectContext, исходный контекст EF, для которого DbContext является оболочкой, и использовать информацию MetadataWorkspace ниже.

Пожалуйста, добавьте еще один ответ, если есть прямой способ получить это непосредственно из DbContext, поскольку он был бы более интуитивным и предпочтительным, если он есть.

using System.Data.Metadata.Edm;
using System.Data.Objects;
using System.Data.Entity.Infrastructure;

...

using (dbcontext context = new TestContext())
{
   ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext;
   MetadataWorkspace workspace = objContext.MetadataWorkspace;
   IEnumerable<EntityType> tables = workspace.GetItems<EntityType>(DataSpace.SSpace);

}

Спасибо, Будет ли