internal CircuitProbe FindOrCreate(RowId rowId) { Debug.Assert(!rowId.IsEmpty && !this.Table.IsDeleted(rowId), "Bad RowId"); CircuitProbe item; if ((item = this.Find(rowId)) != null) { Debug.Assert(!item.IsDeleted(), "Deleted item should not be present in the dictionary"); return(item); } Guid primaryKeyValue = this.Table.GetField(rowId, CircuitProbeData.CircuitProbeIdField.Field); TableSnapshot <CircuitData> tableCircuit = (TableSnapshot <CircuitData>) this.CircuitProject.Table("Circuit"); return(this.Create(rowId, tableCircuit.Find(CircuitData.CircuitIdField.Field, primaryKeyValue))); }