Telerik OpenAccess et plusieurs conditions dans la clause where
-
08-07-2019 - |
Question
Je viens d'écrire quelques tests unitaires et, à ma grande surprise, cela a échoué.
Voici mon test ...
[TestMethod]
public void FetchWithMoreThanOneConditionUsingKnownTypes()
{
using (var scope = EntityObjectScopeProvider.GetNewObjectScope())
{
var temp = new TempClient() { FirstName = "Rohan", Surname = "West" };
var entity = scope.Extent<ClientEntity>().Where(c => temp.FirstName == c.FirstName && temp.Surname == c.Surname).FirstOrDefault();
Assert.IsNotNull(entity);
Assert.AreEqual(entity.FirstName, temp.FirstName);
Assert.AreEqual(entity.Surname, temp.Surname);
}
}
il me donne l'exception suivante, impossible de convertir l'objet de type 'Entities.Testing.TempClient' en type 'System.String'. Est-ce normal, j'espère que non, le test suivant fonctionne correctement. J'imagine qu'il y a un problème lors de l'analyse syntaxique de l'expression ... Ce problème sera-t-il résolu?
[TestMethod]
public void FetchWithMoreThanOneConditionUsingTempVariables()
{
using (var scope = EntityObjectScopeProvider.GetNewObjectScope())
{
var temp = new TempClient(){ FirstName = "Rohan", Surname = "West" };
string firstname = temp.FirstName;
string surname = temp.Surname;
var entity = scope.Extent<ClientEntity>().Where(c => c.FirstName == firstname && c.Surname == surname).FirstOrDefault();
Assert.IsNotNull(entity);
Assert.AreEqual(entity.FirstName, temp.FirstName);
Assert.AreEqual(entity.Surname, temp.Surname);
}
}
La solution
Après avoir contacté l'assistance de Telerik, il s'est avéré que cela n'était pas possible.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow