Wie vermeide ich “source! = Null”, wenn ich Code Contracts und Linq To Sql verwende?

Ich habe den folgenden Code unter Verwendung eines normalen Datenkontexts, der hervorragend funktioniert:

var dc = new myDataContext();
Contract.Assume(dc.Cars!= null);
var cars = (from c in dc.Cars
            where c.Owner == 'Jim'
            select c).ToList();

Allerdings, wenn ich den Filter in eine Erweiterungsmethode wie diese konvertiere:

var dc = new myDataContext();
Contract.Assume(dc.Cars!= null);
var cars = dc.Cars.WithOwner('Jim');

public static IQueryable<Car> WithOwner(this IQueryable<Car> cars, string owner)
{
    Contract.Requires(cars != null);
    return cars.Where(c => c.Owner == owner);
}

Ich erhalte die folgende Warnung:

Warnung: CodeContracts: erfordert unbewiesen: Quelle! = null

Antworten auf die Frage(8)

Ihre Antwort auf die Frage