EF Code Во-первых, как отразить на модели - PullRequest
2 голосов
/ 30 декабря 2011

Сначала в коде EF задаются свойства поля и отношения с использованием интерфейса интерфейса.Это создает модель.Можно ли получить ссылку на эту модель и поразмышлять над ней?Я хочу иметь возможность извлекать для данного поля, если это требуется, каков его тип данных, какова длина и т. Д ...

1 Ответ

2 голосов
/ 30 декабря 2011

Вам необходимо получить доступ к MetadataWorkspace . API довольно загадочный. Вы можете заменить DataSpace.CSpace на DataSpace.SSpace, чтобы получить метаданные базы данных.

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)
                {

                }
            }
        }
 }
...