mvc-mini-profiler, структура сущностей дает: Пространство 'SSpace' не имеет связанной коллекции - PullRequest
2 голосов
/ 14 июня 2011

Я пытаюсь использовать mvc-mini-profiler в своем приложении mvc.Я создал оболочку для своего контекста, и Castle Windsor создает экземпляр.Однако я получаю сообщение об ошибке «Пространство« SSpace »не имеет связанной коллекции».Edmx находится в сборке A, DigidosEntities в сборке B, и это в сборке C. Есть идеи, в чем может быть проблема?Я получил последнюю версию профилировщика.

public interface IDataStore : IDisposable
{
    int SaveChanges(int personId);
    IObjectSet<TEntity> CreateObjectSet<TEntity>() where TEntity : class;
}
public class ProfiledDigidosEntities : IDataStore, IDisposable
{
    private DigidosEntities _context = null;
    public ProfiledDigidosEntities()
    {
        var connectionString = ConfigurationManager.ConnectionStrings["DigidosEntities"].ConnectionString;
        var connection = new EntityConnection(connectionString);
        var conn = ProfiledDbConnection.Get(connection);
        _context = ObjectContextUtils.CreateObjectContext<DigidosEntities>(conn);  /* Error: The space 'SSpace' has no associated collection */
    }
    public void Dispose()
    {
        if (_context != null)
            _context.Dispose();
    }
    public int SaveChanges(int personId)
    {
        return _context.SaveChanges(personId);
    }
    public IObjectSet<TEntity> CreateObjectSet<TEntity>() where TEntity : class
    {
        return _context.CreateObjectSet<TEntity>();
    }
}

1 Ответ

2 голосов
/ 13 августа 2011

Хорошо, вот моя проблема: профилировщик хочет, чтобы рабочая область создала новое профилированное соединение, рабочая область создается с помощью этого метода (в ObjectContextUtils.cs):

   static MetadataCache()
    {
        workspace  = new System.Data.Metadata.Edm.MetadataWorkspace(
          new string[] { "res://*/" },
          new Assembly[] { typeof(U).Assembly });
    }

Как вы можете видетьбудет искать в сборке того типа, который вы хотите создать.Поскольку в моем случае тип модели был не в той же сборке, создание рабочей области не удалось.Перемещение DigidosEntities в ту же сборку, что и edmx, исправило это.

...