BLToolkit: Essayer de mettre à jour une entité et obtenir « ne peut pas se convertir à l'erreur SQL »
Question
J'ai une méthode de mise à jour:
protected int ProcessUpdate(TUpdateDto updateDto, Func<IQueryable<TEntity>, IUpdateable<TEntity>> firstSetter, params Func<IUpdateable<TEntity>, IUpdateable<TEntity>>[] setters)
{
Checker.AssertNull(updateDto);
int id = updateDto.Id.FailIfNull();
IQueryable<TEntity> query = from item in new Table<TEntity>()
where item.Id == id
select item;
IUpdateable<TEntity> updateable = firstSetter(query);
foreach (var setter in setters)
{
setter(updateable);
}
Checker.AssertNull(updateable);
updateable.Update();
return id;
}
Et entité:
[TableName("Test")]
public class Test
{
[PrimaryKey, Identity]
public int Id { get; set; }
public string Field1 { get; set; }
}
Et voici le code de mise à jour:
ProcessUpdate(updateDto, x => x.Set(e => e.Id, updateDto.Id),
x => x.Set(e => e.Field1, updateDto.Field1));
Lorsque je tente de mettre à jour une entrée dans une table que je reçois « « Convert (point) .id » ne peut pas être converti en SQL. » Erreur. Je l'ai essayé de ne pas mettre à jour id et les résultats sont les mêmes. Je voudrais pouvoir trouver la solution, mais je ne peux pas. Merci pour vos réponses.
La solution
La solution était sur la modification des sources de BLToolkit.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow