Запрос обновления структуры сущностей Linq2db для таблицы и столбца Dynami c - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу общий c запрос для всех таблиц, используя linq2db.EntityFrameworkCore

У меня есть 5 вещей. 1. TableName 2. ColumnaName 3. ColumnValue 4. Где имя столбца условия 5. Где значение столбца условия.

Пока что я пытаюсь практически что-то вроде ниже.

public void update(string entity, string attribute, object value, string whereAttribute, string whereAttributeValue)
{
    projectContext.Set<object>().ToLinqToDBTable().TableName(entity)
        .Where(t => t[whereAttribute] == whereAttributeValue) // This is not working.
        .Set(t => t[attribute], value) // so far it is not giving any build error.
        .Update();
}

, но это не работает. как это исправить?

1 Ответ

1 голос
/ 08 апреля 2020

Linq2db имеет функцию динамических c свойств, которую вы, вероятно, могли бы использовать здесь, но для этого необходимо знать тип сущности:

public void update<TEntity>(string entity, string attribute, object value, string whereAttribute, string whereAttributeValue)
    where TEntity : class
{
    projectContext.GetTable<TEntity>()
        .TableName(entity)
        .Where(t => Sql.Property<TEntity>(t, whereAttribute).Equals(whereAttributeValue))
        .Set(t => Sql.Property<TEntity>(t, attribute), value)
        .Update();
}
...