2012-11-03 131 views
45

「非静的メソッドはターゲットが必要です」というエラーが表示されます。非静的メソッドにはターゲットが必要です。エンティティフレームワーク5コード先頭

var allPartners = DbContext.User 
          .Include(u => u.Businesses) 
          .Where(u => u.Businesses.Any(x => x.Id == currentBusinessId)) 
          .ToList(); 

マイentitesは、このような定義されている:私は次のクエリを実行すると

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; } 
} 

そして、私の状況は次のように設定されています。

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); 
    } 
} 

どうしたのですか?

+0

例外の種類、可能な内部例外、呼び出しスタックを表示できますか? – Slauma

+1

あなたが示したコードに問題はないようです。 – Pawel

答えて

98

問題が解決されました。私は実際には簡潔に私の質問をしようとする試みでエラーを削除していた、

var allPartners = DbContext.User 
         .Include(u => u.Businesses) 
         .Where(u => u.Businesses.Any(x => x.Id == currentBusinessId)) 
         .ToList(); 

かなり正確ではありませんでした:私の元の質問には、このクエリを持っていました。クエリは、実際にだった:

var currentBusiness = GetBusiness(); 
var allPartners = DbContext.User 
         .Include(u => u.Businesses) 
         .Where(u => u.Businesses.Any(x => x.Id == currentBusiness.Id)) 
         .ToList(); 

GetBusiness方法は、エラーがスローされたnullを返された場合。私がnullオブジェクトを式に渡さないことを保証するだけで、エラーは止まりました。

+0

私と同じですが、「ヒント」のおかげで – Raffaeu

+0

ありがとう、それはまさに私に起こっていることです。私はこれで何時間も私の尾を追いかけるだろう。 –

関連する問題