У меня есть функции, которые вставляют сущности в базу данных. Например, один из них выглядит следующим образом:Преобразование функции в общую функцию
public async void InsertInspections(ObservableCollection<Inspections> inspections)
{
_connection.CreateTableAsync<Inspections>().Wait();
foreach (var inspection in inspections)
{
var task = _connection.Table<Inspections>().
Where(v => v.InspectionId == inspection.InspectionId).ToListAsync();
task.Wait();
if (task.Result.Any())
_connection.UpdateAsync(inspection);
else
_connection.InsertAsync(inspection);
}
}
Я хотел бы превратить его в общую функцию, но я не уверен, что Whet это лучший способ передать функцию лямбды в методе Where
.
Что-то вроде:
public async void InsertEntities<T>(ObservableCollection<T> entities)
{
_connection.CreateTableAsync<T>().Wait();
foreach (var entity in entities)
{
var task = _connection.Table<T>().
// what is the best way to pass this function to the method ???
Where(v => v.InspectionId == entity.InspectionId).ToListAsync();
task.Wait();
if (task.Result.Any())
_connection.UpdateAsync(entity);
else
_connection.InsertAsync(entity);
}
}
Должен ли я использовать делегатов, лямбды или создать эту функцию в качестве метода класса Entity?
Нет смысла использовать асинхронные методы, если вы просто собираетесь их синхронно ждать. Используйте синхронные методы или 'await' методы async. У вас также есть метод async без вызовов 'await', и метод возвращает' void', если это не так. – Servy