Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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);

}

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