El método no estático requiere un objetivo. Entity Framework 5 Code First
Recibo el error "El método no estático requiere un objetivo."cuando corro la siguiente consulta:
var allPartners = DbContext.User
.Include(u => u.Businesses)
.Where(u => u.Businesses.Any(x => x.Id == currentBusinessId))
.ToList();
Mis entidades se definen así:
public class User : Entity
{
public virtual List<Business> Businesses { get; set; }
}
public class Business : Entity
{
public virtual List<User> Users { get; set; }
}
public class Entity
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
}
Y mi contexto está configurado así;
public class Context : DbContext, IDatabaseSession
{
public DbSet<Business> Business { get; set; }
public DbSet<User> User { get; set; }
public Context()
: base("DefaultConnection")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove
<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Configuration>());
modelBuilder.Entity<User>()
.HasMany(u => u.Businesses)
.WithMany(b => b.Users);
}
}
¿Qué he hecho mal?
46
Author: ilivewithian, 2012-11-03
1 answers
El problema se reduce a la consulta. Mi pregunta original tenía esta pregunta:
var allPartners = DbContext.User
.Include(u => u.Businesses)
.Where(u => u.Businesses.Any(x => x.Id == currentBusinessId))
.ToList();
Que no era del todo exacto, de hecho había eliminado el error en un intento de hacer mi pregunta sucintamente. La consulta fue en realidad:
var currentBusiness = GetBusiness();
var allPartners = DbContext.User
.Include(u => u.Businesses)
.Where(u => u.Businesses.Any(x => x.Id == currentBusiness.Id))
.ToList();
Cuando el método GetBusiness
devolvió null
el error fue lanzado. Simplemente asegurarse de que no paso un objeto null
en la expresión hizo que el error se detuviera.
103
Author: ilivewithian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-17 07:52:06
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-17 07:52:06