Как вы программно получаете метаданные для классов dbset из EF CodeFirst dbcontext? Это необходимо для создания кода для создания кода.
Как получить метаданные dbsets из 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);
}
Спасибо, Будет ли