Je crée une classe de processeur et exécute un rôle de travail. et à l'intérieur du processeur, je crée la répétition pour faire l'opération CRUD à ma base de données.mvc dbcontext ne fonctionne pas sur Azure
J'ai 2 dépôts, produit et produit, dbcontext est créé dans le produit repo et passe à la taille du produit.
tout fonctionne bien sur ma machine locale, mais quand je Azure à déployer, le système me jette cette erreur:
System.InvalidOperationException: The operation cannot be completed because the DbContext has been disposed.
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
at System.Linq.Queryable.Where[TSource](IQueryable`1 source, Expression`1 predicate)
processor.cs
public class Processor : IDisposable
{
private readonly IProductRepository _productRepository;
public Processor()
: this(new ProductRepository())
{
}
public Processor(
IProductRepository productRepository
)
{
_productRepository = productRepository;
}
public void Run(){ _productRepository.someoperation;}
public void Dispose()
{
_productRepository.Dispose();
}
productrepository.cs
public class ProductRepository : IProductRepository
{
private static readonly DbContext_context = new DbContext();
private readonly IProductSizeRepository _productSizeRepository;
public ProductRepository()
: this(
new ProductSizeRepository(_context))
{
}
public ProductRepository(
IProductSizeRepository productSizeRepository
)
{
_pictureRepository = pictureRepository;
}
public void Dispose()
{
_context.Dispose();
_productSizeRepository.Dispose();
}
dans le workerrole.cs tandis que la boucle en utilisant (var runne r = new Processor()) { runner.Run(); }
Est-ce que vous la base de données SQL Server? – Thomas
Oui, azure sql db – Kiddo
Utilisez-vous toujours SQL Server Compact Edition (SCSE) dans le cloud? – Thomas