Entity Framework içine alıyorum, ama kod ilk yaklaşımda kritik bir noktayı eksik olup olmadığından emin değilim.
Https://genericunitofworkandrepositories.codeplex.com/ adresindeki koda dayalı genel bir depo deseni kullanıyorum ve varlıklarımı oluşturdum.
Ancak varlığa erişmeye veya değiştirmeye çalıştığımda aşağıdakilerle karşılaşıyorum:
System.InvalidOperationException: Estate varlık türü, geçerli bağlam için modelin bir parçası değil.
Depomdan erişmeye çalıştığımda olur:
public virtual void Insert(TEntity entity)
{
((IObjectState)entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity); // <-- The error occurs here
_context.SyncObjectState(entity);
}
Veritabanı (./SQLEXPRESS) gayet iyi oluşturulmuş, ancak varlıklar (tablolar) başlangıçta oluşturulmamış.
Varlıkları eşleştirmeyi açıkça ayarlamam gerekip gerekmediğini merak ediyorum? EF bunu tek başına yapamıyor mu?
Varlığım:
public class Estate : EntityBase
{
public int EstateId { get; set; }
public string Name { get; set; }
}
Bağlamım şöyle:
public partial class DimensionWebDbContext : DbContextBase // DbContextBase inherits DbContext
{
public DimensionWebDbContext() :
base("DimensionWebContext")
{
Database.SetInitializer<DimensionWebDbContext>(new CreateDatabaseIfNotExists<DimensionWebDbContext>());
Configuration.ProxyCreationEnabled = false;
}
public new IDbSet<T> Set<T>() where T : class
{
return base.Set<T>();
}
}
Bu hatanın oluşmasının belirli bir nedeni var mı? Herhangi bir yardım almadan geçişleri etkinleştirmeyi ve otomatik geçişleri etkinleştirmeyi denedim.