BLToolkit: Essayer de mettre à jour une entité et obtenir « ne peut pas se convertir à l'erreur SQL »

StackOverflow https://stackoverflow.com/questions/5811915

  •  25-10-2019
  •  | 
  •  

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.

Était-ce utile?

La solution

La solution était sur la modification des sources de BLToolkit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top