Reputation: 1817
I got two models, a User and a Team as below:
[BsonRepresentation(BsonType.ObjectId)]
public ObjectId _id { get; set; }
[Display(Name = "Password:")]
public string Password { get; set; }
[Display(Name = "Confirm:")]
public string ConfirmPassword { get; set; }
[Display(Name = "Email:")]
public string Email { get; set; }
[Display(Name = "Username:")]
public string UserName { get; set; }
[Display(Name = "Firtname:")]
public string Firstname { get; set; }
[Display(Name = "Lastname:")]
public string Lastname { get; set; }
[Display(Name = "Country:")]
public string Country { get; set; }
[Display(Name = "City:")]
public string City { get; set; }
[Display(Name = "Birthdate:")]
public int Birthdate { get; set; }
public List<Team> Teams { get; set; }
[BsonRepresentation(BsonType.ObjectId)]
public ObjectId TeamID { get; set; }
public string TeamName { get; set; }
public string UserName { get; set; }
public int LeagueID { get; set; }
public List<Player> Player { get; set; }
So I've created a user but now I want to add teams to my user. This is the code I'm using:
var databaseClient = new MongoClient(Settings.Default.FantasySportsConnectionString);
var server = databaseClient.GetServer();
var database = server.GetDatabase("Users");
var collection = database.GetCollection<User>("users");
var user = collection.AsQueryable().First(o => o._id == Session["ID"]);
user.Teams.Add(new Team { TeamID = new ObjectId(), TeamName = "Some Team" });
But when I do this I get these errors:
1: Instance argument: cannot convert from 'MongoDB.Driver.MongoCollection<SportsFantasy_2._0.Models.User>' to 'System.Collections.IEnumerable'
2: 'MongoDB.Driver.MongoCollection<SportsFantasy_2._0.Models.User>' does not contain a definition for 'AsQueryable' and the best extension method overload 'System.Linq.Queryable.AsQueryable(System.Collections.IEnumerable)' has some invalid arguments
Upvotes: 8
Views: 6409
Reputation: 51
I was getting the same error with with the .NET driver v2.3.0. I removed it and installed v2.2.4 using NuGet and it worked. The error I kept getting:
Method not found: 'MongoDB.Driver.Linq.IMongoQueryable1<!!0> MongoDB.Driver.IMongoCollectionExtensions.AsQueryable(MongoDB.Driver.IMongoCollection
1)'.
Upvotes: 2
Reputation: 116548
You are missing a namespace, MongoDB.Driver.Linq
, simply add that at the top:
using MongoDB.Driver.Linq;
That specific method is:
LinqExtensionMethods
{
public static IQueryable<T> AsQueryable<T>(this MongoCollection<T> collection);
//...
}
Upvotes: 12