2012-11-03 30 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

के लिए धन्यवाद, धन्यवाद, यह वही है जो मेरे साथ हो रहा है। मैं इस पर घंटों के लिए अपनी पूंछ का पीछा किया होगा। –