Ich versuche, das SimpleRepository zu verwenden, um einen Abruf basierend auf einer Nicht-ID-Eigenschaft durchzuführen. Hier ist die Customer-Klasse Ich verwende:Ausnahme "Lambda-Parameter nicht im Bereich" unter Verwendung der SimpleRepository-Methode "Single"
[Serializable]
public class Customer : IEntity<Guid>
{
public Guid ProviderUserKey { get; set; }
public Guid ID
{
get; set;
}
}
ich SimpleRepository bin mit bei der Migration eingeschaltet. Der Code, der die „Lambda Parameter nicht in scope“ wirft unter:
public class CustomerRepository :
ICustomerRepository
{
private readonly IRepository _impl;
public CustomerRepository(string connectionStringName)
{
_impl = new SimpleRepository(connectionStringName,
SimpleRepositoryOptions.RunMigrations);
}
public Customer GetCustomer(string userName)
{
var user = Membership.GetUser(userName);
// Code to guard against a missing user would go here
// This line throws the exception
var customer = _impl.Single<Customer>(c => c.ProviderUserKey.Equals(user.ProviderUserKey));
// Code to create a new customer based on the
// ASP.NET Membership user would go here
return customer;
}
}
ich bin nicht sicher, an welchem Punkt im Ausdruck Kompilierung LINQ diese wirft, aber ich bin mit diesem Beispiel auf eine leere Datenbank. Die Schemagenerationen reichen weit genug, um die Tabellenstruktur zu erstellen, können aber den Ausdruck nicht auswerten.
Weiß jemand, was ich falsch machen könnte?
Danke!
Hallo, ich bekomme diesen Fehler auch, aber ich verwende Find-Methode. – ryudice
Hallo Rob, ich benutze SubSonic 3.0.4 und versuche, dies zu tun: 'x => x.FirstName.ToUpper(). StartsWith (Name)' es wirft Ausnahme beim Konstruieren 'Constraint', weil Constraintfragment null ist. funktioniert ohne 'ToUpper' – TheVillageIdiot