Я задавался вопросом, могли ли Вы перечислить/исследовать, какие базы данных/объекты доступны Вам в консоли Rails. Я знаю, что Вы видите, что они используют другие инструменты, мне просто любопытно.Спасибо.
Вы, вероятно, ищете:
ActiveRecord::Base.connection.tables
и
ActiveRecord::Base.connection.columns('projects').map(&:name)
Вы, вероятно, должны обернуть их в более короткий синтаксис внутри вашего .IRBRC
.
Если требуется обновить определенный объект, метод Refresh () может оказаться наиболее предпочтительным.
Например:
Context.Refresh(RefreshMode.OverwriteCurrentValues, objectToRefresh);
Можно также передать массив объектов или IEnumerable в качестве второго аргумента, если требуется обновить несколько объектов одновременно.
Я вижу, о чем вы говорите в комментариях, в рефлекторе вы видите, что это происходит внутри. Refresh ():
object objectByKey = context.Services.GetObjectByKey(trackedObject.Type, keyValues);
if (objectByKey == null)
{
throw Error.RefreshOfDeletedObject();
}
Метод, который вы связали, кажется лучшим вариантом, класс DataContext не предоставляет другого способа очистить удаленную строку. Проверки удаления и такие проверки находятся внутри метода ClearCache ()
... это действительно просто проверка удаления и вызов ResetServices ()
в CommonDataServices
ниже.. единственным плохим эффектом будет очистка любых ожидающих вставок, обновлений или удалений, которые были поставлены в очередь.
Есть еще один вариант, можете ли вы запустить другой DataContext для любой выполняемой вами операции? Он не имел бы никакого кэша... но это связано с некоторыми вычислительными затратами, поэтому, если ожидающие вставки, обновления и удаления не являются проблемой, я бы придерживался подхода ClearCache ()
.
Я бы:
Если T в вашем базовом репозитории является Заказчиком, то я думаю, что вы неправильно применяете концепцию агрегированных корней, хотя я не строгий евангелист . Я бы разработал репозиторий для Клиента, который вернул бы любые данные, логически или удобно сгруппированные с Клиентом, включая DataTables или объекты только для чтения, которые являются представлениями данных Клиента.
-121--1498969-Его начало, он может перечислить:
models = Dir.new("#{RAILS_ROOT}/app/models").entries
Глядя еще...